Linux 6.6.2 documentation
This commit is contained in:
@@ -1,16 +1,23 @@
|
||||
%
|
||||
% Thomas Kuschel 2023
|
||||
\newcommand{\version}{V6.5}
|
||||
\newcommand{\version}{V6.6}
|
||||
\documentclass[10pt,a4paper]{article}
|
||||
%\documentclass[12pt,a4paper]{report}
|
||||
\usepackage[a4paper,margin=25mm]{geometry}
|
||||
\usepackage[ngerman]{babel} %Verwendung von \glqq \qrgg{}
|
||||
\usepackage{hyperref}
|
||||
\setcounter{secnumdepth}{4}%numbering down to paragraphs
|
||||
\setcounter{secnumdepth}{5}%numbering down to paragraphs, subparagraphs
|
||||
%% \usepackage{ulem} %strike through with /sout{}
|
||||
% you have to install texlive-plaingeneric first :
|
||||
\usepackage{ulem}
|
||||
|
||||
% The following is to use subparagraph without intending:
|
||||
\makeatletter
|
||||
\renewcommand\subparagraph{%
|
||||
\@startsection {subparagraph}{5}{\z@ }{3.25ex \@plus 1ex
|
||||
\@minus .2ex}{-1em}{\normalfont \normalsize \bfseries }}%
|
||||
\makeatother
|
||||
|
||||
\begin{document}
|
||||
|
||||
\section*{Linux Configuration \version}
|
||||
@@ -228,18 +235,16 @@ zu diagnostizierenden Interrupt-Problemen.
|
||||
\subsection{Timers subsystem \texorpdfstring{$\rightarrow$}{->}}
|
||||
\subsubsection{Timer tick handling \texorpdfstring{$\rightarrow$}{->}}
|
||||
Sie müssen aus den folgenden drei Möglichkeiten eine wählen:
|
||||
\paragraph{Periodic timer ticks (constant rate, no dynticks)}
|
||||
\paragraph{Periodic timer ticks (constant rate, no dynticks)} $~$ \\
|
||||
CONFIG\_HZ\_PERIODIC [=n] \textbf{[N]}\\
|
||||
Diese Option sorgt dafür, dass der Tick periodisch mit einer konstanten Rate läuft,
|
||||
auch wenn die CPU ihn nicht braucht.
|
||||
\paragraph{Idle dynticks system (tickless idle)}
|
||||
% \\
|
||||
\paragraph{Idle dynticks system (tickless idle)} $~$ \\
|
||||
CONFIG\_NO\_HZ\_IDLE [=n] \textbf{[N]}\\
|
||||
Diese Option ermöglicht ein tickloses idle-System (Leerlaufsystem):
|
||||
Timer-Interrupts werden nur bei Bedarf ausgelöst, wenn das System im
|
||||
Leerlauf ist. Dies ist v.a. zum Energiesparen interessant.
|
||||
\paragraph{Full dynticks system (tickless)}
|
||||
% \\
|
||||
\paragraph{Full dynticks system (tickless)} $~$ \\
|
||||
CONFIG\_NO\_HZ\_FULL [=y] \textbf{[Y]}\\
|
||||
Diese Option ermöglicht ein tickloses idle-System (Leerlaufsystem):
|
||||
Timer-Interrupts werden nur bei Bedarf ausgelöst, wenn das System im
|
||||
@@ -310,7 +315,7 @@ Beachten Sie, dass ein Administrator diese Funktion durch Ändern aktivieren sol
|
||||
\indent\texttt{/proc/sys/net/core/bpf\_jit\_enable} \\
|
||||
\indent\texttt{/proc/sys/net/core/bpf\_jit\_harden (optional)} \\
|
||||
\indent\texttt{/proc/sys/net/core/bpf\_jit\_kallsyms (optional)}
|
||||
\paragraph{Permanently enable BPF JIT and remove BPF interpreter\\}
|
||||
\paragraph{Permanently enable BPF JIT and remove BPF interpreter} $~$ \\
|
||||
CONFIG\_BPF\_JIT\_ALWAYS\_ON [=y] \textbf{[Y]}\\
|
||||
Aktiviert BPF JIT und entfernt den BPF-Interpreter um spekulative Ausführungen
|
||||
von BPF-Anweisungen durch den Interpreter zu verhindern.\\
|
||||
@@ -334,7 +339,8 @@ Dadurch wird ein Kernelmodul mit mehreren eingebetteten BPF-Programmen erstellt,
|
||||
die als für den Menschen lesbare Dateien in den BPF-FS-Einhängepunkt
|
||||
eingefügt werden, was bei der Fehlersuche und der Untersuchung von BPF-Programmen
|
||||
und -Maps nützlich ist.
|
||||
\paragraph{bpf\_preload kernel module}
|
||||
\paragraph{bpf\_preload kernel module\\} $~$ \\
|
||||
\textit{Dies ist nur sichtbar wenn der übergeordnete Punkt aktiviert ist.}\\
|
||||
CONFIG\_BPF\_PRELOAD\_UMD [=m] \textbf{[]}\\
|
||||
Dadurch wird ein Kernelmodul mit mehreren eingebetteten BPF-Programmen
|
||||
erstellt, die als für den Menschen lesbare Dateien in den BPF-FS-Einhängepunkt eingefügt werden, was bei der Fehlersuche und der Untersuchung von BPF-Programmen und -Maps nützlich ist.
|
||||
@@ -397,7 +403,7 @@ koordinierten Auswahl von Aufgaben zwischen SMT-Geschwistern.
|
||||
Wenn diese Option aktiviert ist - siehe prctl
|
||||
(PR\_SCHED\_CORE)
|
||||
- stellt die Aufgabenauswahl sicher, dass alle SMT-Geschwister
|
||||
eine Aufgabe aus der gleichen \"Kerngruppe\" ausführen und
|
||||
eine Aufgabe aus der gleichen \glqq Kerngruppe\grqq{} ausführen und
|
||||
den Leerlauf erzwingen, wenn keine passende Aufgabe gefunden
|
||||
wird.
|
||||
Diese Funktion wird unter anderem verwendet:
|
||||
@@ -410,4 +416,124 @@ bei Linux-Distributionen wahrscheinlich der Fall ist,
|
||||
sollte es keine messbaren Auswirkungen auf die Leistung
|
||||
haben.
|
||||
|
||||
\subsection{CPU/Task time and stats accounting \texorpdfstring{$\rightarrow$}{->}}
|
||||
|
||||
\subsubsection{Cputime accounting (Full dynticks CPU time accounting) \texorpdfstring{$\rightarrow$}{->}}
|
||||
\paragraph{Full dynticks CPU time accounting} $~$\\
|
||||
CONFIG\_VIRT\_CPU\_ACCOUNTING\_GEN [=y] \textbf{[Y]}\\
|
||||
Wählen Sie diese Option, um die Berechnung der Task- und CPU-Zeit auf
|
||||
Full-Dynticks-Systemen zu aktivieren.
|
||||
Diese Berechnung wird durch die Überwachung aller Kernel-Benutzer-Grenzen mithilfe des
|
||||
Kontextverfolgungs-Subsystems implementiert.\\
|
||||
Die Berechnung erfolgt daher auf Kosten eines erheblichen Overheads.\\
|
||||
Im Moment ist dies nur sinnvoll, wenn Sie an der Entwicklung des vollständigen
|
||||
Dynticks-Subsystems arbeiten.
|
||||
|
||||
\subsubsection{Fine granularity task level IRQ time accounting}
|
||||
CONFIG\_IRQ\_TIME\_ACCOUNTING [=y] \textbf{[Y]}\\
|
||||
Wählen Sie diese Option aus, um eine fein granulare Berechnung der
|
||||
Task-Irq-Zeit zu aktivieren.
|
||||
Dies geschieht durch das Lesen eines Zeitstempels bei jedem Übergang
|
||||
zwischen dem softirq- und dem hardirq-Zustand, so dass es zu geringen
|
||||
Leistungseinbußen kommen kann.\\
|
||||
Im Zweifelsfall sagen Sie hier N für Nein.
|
||||
|
||||
\subsubsection{BSD Process Accounting}
|
||||
CONFIG\_BSD\_PROCESS\_ACCT [=y] \textbf{[Y]}\\
|
||||
Wenn Sie hier Y (für Ja) angeben, kann ein Programm auf Benutzerebene den Kernel
|
||||
(über einen speziellen Systemaufruf) anweisen, Prozessabrechnungsinformationen
|
||||
in eine Datei zu schreiben: Jedes Mal, wenn ein Prozess beendet wird, werden
|
||||
Informationen über diesen Prozess vom Kernel an die Datei angehängt.
|
||||
Die Informationen beinhalten Dinge wie die Erstellungszeit, den besitzenden
|
||||
Benutzer, den Befehlsnamen, den Speicherverbrauch, das kontrollierende Terminal
|
||||
usw. (die vollständige Liste kann in der acct-Struktur in
|
||||
\textless{}file:include/linux/acct.h\textgreater{} gefunden werden).
|
||||
Es obliegt dem Programm auf Benutzerebene, nützliche Dinge mit diesen
|
||||
Informationen zu tun. Dies ist im Allgemeinen eine gute Idee, also sagen
|
||||
Sie Y für Ja.
|
||||
|
||||
\paragraph{BSD Process Accounting version 3 file format} $~$\\
|
||||
CONFIG\_BSD\_PROCESS\_ACCT\_V3 [=y] \textbf{[Y]}\\
|
||||
Wenn Sie hier Y (für Ja) angeben, werden die Prozessabrechnungsinformationen
|
||||
in ein neues Dateiformat geschrieben, das auch die Prozess-IDs der einzelnen
|
||||
Prozesse und ihrer Eltern protokolliert. Beachten Sie, dass dieses
|
||||
Dateiformat nicht mit den früheren v0/v1/v2-Dateiformaten kompatibel ist,
|
||||
so dass Sie aktualisierte Werkzeuge für die Verarbeitung benötigen.
|
||||
Eine vorläufige Version dieser Werkzeuge ist unter
|
||||
\textless{}http://www.gnu.org/software/acct/\textgreater{} verfügbar.
|
||||
|
||||
\subsubsection{Export task/process statistics through netlink}
|
||||
CONFIG\_TASKSTATS [=y] \textbf{[Y]}\\
|
||||
Export ausgewählter Statistiken für Aufgaben/Prozesse über die generische
|
||||
Netlink-Schnittstelle. Im Gegensatz zur BSD-Prozessabrechnung sind die
|
||||
Statistiken während der Lebensdauer von Aufgaben/Prozessen als Antwort auf
|
||||
Befehle verfügbar. Wie BSD-Accounting werden sie beim Beenden von Tasks in
|
||||
den Benutzerbereich gesendet.\\
|
||||
Sagen Sie N, wenn Sie unsicher sind.
|
||||
|
||||
\paragraph{Enable per-task delay accounting} $~$\\
|
||||
CONFIG\_TASK\_DELAY\_ACCT [=y] \textbf{[Y]}\\
|
||||
Sammeln Sie Informationen über die Zeit, die eine Task für das Warten auf
|
||||
Systemressourcen wie CPU, synchrone Block-E/A-Abwicklung und Auslagerung
|
||||
von Seiten aufwendet. Solche Statistiken können bei der Festlegung der
|
||||
Prioritäten eines Tasks im Verhältnis zu anderen Tasks für CPU-, IO-,
|
||||
RSS-Limits usw. helfen.\\
|
||||
Sagen Sie N, wenn Sie unsicher sind.
|
||||
|
||||
\paragraph{Enable extended accounting over taskstats}$~$\\
|
||||
CONFIG\_TASK\_XACCT [=y] \textbf{[Y]}\\
|
||||
Sammeln von erweiterten Task-Accounting-Daten und Senden der Daten an
|
||||
das Userland zur Verarbeitung über die Taskstats-Schnittstelle.\\
|
||||
Sagen Sie N, wenn Sie unsicher sind.
|
||||
|
||||
\subparagraph{Enable per-task storage I/O accounting}$~$\\
|
||||
CONFIG\_TASK\_IO\_ACCOUNTING [=y] \textbf{[Y]}\\
|
||||
Sammeln von Informationen über die Anzahl
|
||||
der Bytes an Speicher-E/A, die dieser Task verursacht hat.\\
|
||||
Sagen Sie N, wenn Sie unsicher sind.
|
||||
|
||||
\subsubsection{Pressure stall information tracking}
|
||||
CONFIG\_PSI [=y] \textbf{[Y]}\\
|
||||
Sammeln Sie Metriken, die anzeigen, wie überlastet die CPU-, Speicher-
|
||||
und IO-Kapazität im System sind.\\
|
||||
|
||||
Wenn Sie hier Y angeben, erstellt der Kernel /proc/pressure/ mit die
|
||||
Druckstatistikdateien cpu, memory und io. Diese zeigen den Anteil der
|
||||
Walltime an, in dem einige oder alle Tasks im System aufgrund der
|
||||
Beanspruchung der jeweiligen Ressource verzögert sind.
|
||||
|
||||
In Kerneln mit cgroup-Unterstützung verfügen cgroups (nur cgroup2) über
|
||||
cpu.pressure-, memory.pressure- und io.pressure-Dateien, die nur die
|
||||
Druckstaus für die gruppierten Aufgaben zusammenfassen.\\
|
||||
Weitere Einzelheiten finden Sie unter Documentation/accounting/psi.rst.\\
|
||||
Sagen Sie N, wenn Sie unsicher sind.
|
||||
|
||||
\paragraph{Require boot parameter to enable pressure stall information tracking} $~$\\
|
||||
CONFIG\_PSI\_DEFAULT\_DISABLED [=n] \textbf{[N]}\\
|
||||
Wenn diese Option gesetzt ist, ist die Verfolgung von Druckstauinformationen
|
||||
standardmäßig deaktiviert, kann aber durch die Übergabe von psi=1 auf der
|
||||
Kernel-Befehlszeile beim Booten aktiviert werden.\\
|
||||
|
||||
Diese Funktion fügt dem Task-Wakeup- und Sleep-Pfad des Schedulers etwas Code hinzu.
|
||||
Der Overhead ist zu gering, um gängige planungsintensive Arbeitslasten in der Praxis
|
||||
|
||||
zu beeinträchtigen (z. B. Webserver, Memcache), aber es zeigt sich in künstlichen
|
||||
Scheduler-Stresstests, wie z. B. Hackbench.
|
||||
Wenn Sie paranoid sind und nicht sicher, wofür der Kernel verwendet wird,
|
||||
sagen Sie Y für Ja.\\
|
||||
Sagen Sie N, wenn Sie unsicher sind.
|
||||
|
||||
\subsection{CPU isolation}
|
||||
CONFIG\_CPU\_ISOLATION [=y] \textbf{[Y]}\\
|
||||
Stellen Sie sicher, dass CPUs, auf denen kritische Aufgaben laufen,
|
||||
nicht durch irgendwelche "Störquellen" wie ungebundene Workqueues, Timers,
|
||||
kthreads usw. gestört werden.\\
|
||||
Ungebundene Aufgaben werden auf Housekeeping-CPUs verlagert.
|
||||
Dies wird durch den Boot-Parameter "isolcpus=" gesteuert.\\
|
||||
Sagen Sie Y für ja, wenn Sie unsicher sind.
|
||||
|
||||
\subsection{RCU Subsystem \texorpdfstring{$\rightarrow$}{->}}
|
||||
|
||||
|
||||
|
||||
\end{document}
|
||||
|
||||
Reference in New Issue
Block a user