Verstehen Sie Linux-Lastdurchschnitte und überwachen Sie die Leistung von Linux

In diesem Artikel werden wir eine der kritischen Aufgaben der Linux-Systemverwaltung erklären – die Leistungsüberwachung in Bezug auf System-/CPU-Last und Lastdurchschnitte.

Bevor wir weitermachen, lassen Sie uns diese beiden wichtigen Begriffe in allen Unix-ähnlichen Systemen verstehen:

  • Systemlast/CPU-Last – ist eine Messung der CPU-Über- oder Unterbeanspruchung in einem Linux-System; die Anzahl der Prozesse, die von der CPU ausgeführt werden oder im Wartezustand sind.
  • Lastdurchschnitt – ist der durchschnittliche Systemlastwert, der über einen bestimmten Zeitraum von 1, 5 und 15 Minuten berechnet wird.

In Linux wird angenommen, dass der Lastdurchschnitt technisch ein laufender Durchschnitt von Prozessen in seiner (Kernel-)Ausführungswarteschlange ist, die als ausgeführt oder nicht unterbrechbar gekennzeichnet sind.

Beachten Sie:

  • Alle, wenn nicht die meisten Systeme, die von Linux oder anderen Unix-ähnlichen Systemen betrieben werden, werden dem Benutzer möglicherweise die Lastdurchschnittswerte irgendwo anzeigen.
  • A downright idle Linux system may have a load average of zero, excluding the idle process.
  • Fast alle Unix-ähnlichen Systeme zählen nur Prozesse in den Zuständen „Ausführen“ oder „Warten“. Dies ist jedoch nicht der Fall bei Linux, es werden auch Prozesse im nicht unterbrechbaren Ruhezustand einbezogen; diejenigen, die auf andere Systemressourcen wie Festplatten-E/A usw. warten.

Wie man den Linux-Systemlastdurchschnitt überwacht

Es gibt zahlreiche Möglichkeiten, den Systemlastdurchschnitt zu überwachen, einschließlich der Uptime, die anzeigt, wie lange das System bereits läuft, der Anzahl der Benutzer zusammen mit den Lastdurchschnitten:

$ uptime

07:13:53 up 8 days, 19 min,  1 user,  load average: 1.98, 2.15, 2.21

Die Zahlen werden von links nach rechts gelesen, und die Ausgabe oben bedeutet, dass:

  • Der Lastdurchschnitt der letzten 1 Minute beträgt 1,98.
  • Die durchschnittliche Last in den letzten 5 Minuten beträgt 2,15
  • Die durchschnittliche Last in den letzten 15 Minuten beträgt 2,21

Hohe Lastdurchschnitte deuten darauf hin, dass ein System überlastet ist; viele Prozesse warten auf CPU-Zeit.

Dies werden wir im nächsten Abschnitt im Zusammenhang mit der Anzahl der CPU-Kerne erläutern. Darüber hinaus können wir auch andere bekannte Tools wie top und glances verwenden, die den Echtzeitstatus eines laufenden Linux-Systems anzeigen, sowie viele andere Tools:

Top-Befehl

$ top
Display Running Linux Processes
top - 12:51:42 up  2:11,  1 user,  load average: 1.22, 1.12, 1.26
Tasks: 243 total,   1 running, 242 sleeping,   0 stopped,   0 zombie
%Cpu(s): 17.4 us,  2.9 sy,  0.3 ni, 74.8 id,  4.6 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8069036 total,   388060 free,  4381184 used,  3299792 buff/cache
KiB Swap:  3906556 total,  3901876 free,     4680 used.  2807464 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                                        
 6265 tecmint   20   0 1244348 170680  83616 S  13.3  2.1   6:47.72 Headset                                                                                                                                        
 2301 tecmint    9 -11  640332  13344   9932 S   6.7  0.2   2:18.96 pulseaudio                                                                                                                                     
 2459 tecmint   20   0 1707692 315628  62992 S   6.7  3.9   6:55.45 cinnamon                                                                                                                                       
 2957 tecmint   20   0 2644644 1.035g 137968 S   6.7 13.5  50:11.13 firefox                                                                                                                                        
 3208 tecmint   20   0  507060  52136  33152 S   6.7  0.6   0:04.34 gnome-terminal-                                                                                                                                
 3272 tecmint   20   0 1521380 391324 178348 S   6.7  4.8   6:21.01 chrome                                                                                                                                         
 6220 tecmint   20   0 1595392 106964  76836 S   6.7  1.3   3:31.94 Headset                                                                                                                                        
    1 root      20   0  120056   6204   3964 S   0.0  0.1   0:01.83 systemd                                                                                                                                        
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd                                                                                                                                       
    3 root      20   0       0      0      0 S   0.0  0.0   0:00.10 ksoftirqd/0                                                                                                                                    
    5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H   
....

Glances-Tool

$ glances
Glances – Linux System Monitoring Tool
TecMint (LinuxMint 18 64bit / Linux 4.4.0-21-generic)                                                                                                                                               Uptime: 2:16:06

CPU      16.4%  nice:     0.1%                                        LOAD    4-core                                        MEM     60.5%  active:    4.90G                                        SWAP      0.1%
user:    10.2%  irq:      0.0%                                        1 min:    1.20                                        total:  7.70G  inactive:  2.07G                                        total:   3.73G
system:   3.4%  iowait:   2.7%                                        5 min:    1.16                                        used:   4.66G  buffers:    242M                                        used:    4.57M
idle:    83.6%  steal:    0.0%                                        15 min:   1.24                                        free:   3.04G  cached:    2.58G                                        free:    3.72G

NETWORK     Rx/s   Tx/s   TASKS 253 (883 thr), 1 run, 252 slp, 0 oth sorted automatically by cpu_percent, flat view
enp1s0     525Kb   31Kb
lo           2Kb    2Kb     CPU%  MEM%  VIRT   RES   PID USER        NI S    TIME+ IOR/s IOW/s Command 
wlp2s0        0b     0b     14.6  13.3 2.53G 1.03G  2957 tecmint      0 S 51:49.10     0   40K /usr/lib/firefox/firefox 
                             7.4   2.2 1.16G  176M  6265 tecmint      0 S  7:08.18     0     0 /usr/lib/Headset/Headset --type=renderer --no-sandbox --primordial-pipe-token=879B36514C6BEDB183D3E4142774D1DF --lan
DISK I/O     R/s    W/s      4.9   3.9 1.63G  310M  2459 tecmint      0 R  7:12.18     0     0 cinnamon --replace
ram0           0      0      4.2   0.2  625M 13.0M  2301 tecmint    -11 S  2:29.72     0     0 /usr/bin/pulseaudio --start --log-target=syslog
ram1           0      0      4.2   1.3 1.52G  105M  6220 tecmint      0 S  3:42.64     0     0 /usr/lib/Headset/Headset 
ram10          0      0      2.9   0.8  409M 66.7M  6240 tecmint      0 S  2:40.44     0     0 /usr/lib/Headset/Headset --type=gpu-process --no-sandbox --supports-dual-gpus=false --gpu-driver-bug-workarounds=7,2
ram11          0      0      2.9   1.8  531M  142M  1690 root         0 S  6:03.79     0     0 /usr/lib/xorg/Xorg :0 -audit 0 -auth /var/lib/mdm/:0.Xauth -nolisten tcp vt8
ram12          0      0      2.6   0.3 79.3M 23.8M  9651 tecmint      0 R  0:00.71     0     0 /usr/bin/python3 /usr/bin/glances
ram13          0      0      1.6   4.8 1.45G  382M  3272 tecmint      0 S  6:25.30     0    4K /opt/google/chrome/chrome 
...

Die von diesen Tools angezeigten Lastdurchschnitte werden aus der Datei /proc/loadavg gelesen, die Sie mithilfe des cat-Befehls wie folgt anzeigen können:

$ cat /proc/loadavg

2.48 1.69 1.42 5/889 10570

Um die Lastdurchschnitte im Diagrammformat zu überwachen, werfen Sie einen Blick auf: ttyload – Zeigt ein farbcodiertes Diagramm des Linux-Lastdurchschnitts im Terminal an

Auf Desktop-Computern gibt es grafische Benutzeroberflächen-Tools, die wir verwenden können, um die durchschnittliche Systemlast anzuzeigen.

Verständnis der durchschnittlichen Systemlast in Bezug auf die Anzahl der CPUs

Wir können die Systemlast oder die Systemleistung unmöglich erklären, ohne auf die Auswirkungen der Anzahl der CPU-Kerne auf die Leistung einzugehen.

Multiprozessor vs. Multikern

  • Multiprozessor – hierbei sind zwei oder mehr physische CPUs in ein einziges Computersystem integriert.
  • Mehrprozessor – ist eine einzelne physische CPU, die mindestens zwei oder mehr separate Kerne (oder auch Recheneinheiten) hat, die parallel arbeiten. Das bedeutet, dass ein Dual-Core 2 Recheneinheiten hat, ein Quad-Core 4 Recheneinheiten und so weiter.

Darüber hinaus gibt es auch eine Prozessortechnologie, die von Intel eingeführt wurde, um das parallele Rechnen zu verbessern, die als Hyper-Threading bezeichnet wird.

Unter Hyper-Threading erscheint ein einzelner physischer CPU-Kern als zwei logische CPU-Kerne für ein Betriebssystem (aber in Wirklichkeit handelt es sich um eine physische Hardwarekomponente).

Beachten Sie, dass ein einzelner CPU-Kern jeweils nur eine Aufgabe ausführen kann, daher wurden Technologien wie mehrere CPUs/Prozessoren, Mehrkern-CPUs und Hyper-Threading entwickelt.

Mit mehr als einer CPU können mehrere Programme gleichzeitig ausgeführt werden. Aktuelle Intel-CPUs verwenden eine Kombination aus mehreren Kernen und Hyper-Threading-Technologie.

Um die Anzahl der verfügbaren Recheneinheiten auf einem System zu ermitteln, können wir die Nproc- oder Lscpu-Befehle verwenden, wie folgt:

$ nproc
4

OR
lscpu

Ein weiterer Weg, die Anzahl der Verarbeitungseinheiten zu finden, ist die Verwendung des grep-Befehls, wie gezeigt.

$ grep 'model name' /proc/cpuinfo | wc -l

4

Um das Systemauslastung weiter zu verstehen, werden wir einige Annahmen treffen. Angenommen, wir haben die folgenden Lastdurchschnitte:

23:16:49 up  10:49,  5 user,  load average: 1.00, 0.40, 3.35
Auf einem Ein-Kern-System würde dies bedeuten:
  • Die CPU war im Durchschnitt vollständig (100 %) ausgelastet; 1 Prozess lief auf der CPU (1,00) in den letzten 1 Minute.
  • Die CPU war im Durchschnitt zu 60 % leer; keine Prozesse warteten auf CPU-Zeit (0,40) in den letzten 5 Minuten.
  • Die CPU war im Durchschnitt um 235 % überlastet; 2,35 Prozesse warteten auf CPU-Zeit (3,35) in den letzten 15 Minuten.
Auf einem Dual-Core-System würde dies bedeuten:
  • Eine CPU war im Durchschnitt zu 100 % leer, eine CPU wurde genutzt; keine Prozesse warteten auf CPU-Zeit (1,00) in den letzten 1 Minute.
  • Die CPUs waren im Durchschnitt zu 160 % leer; keine Prozesse warteten auf CPU-Zeit (0,40) in den letzten 5 Minuten.
  • Die CPUs waren im Durchschnitt um 135 % überlastet; 1,35 Prozesse warteten auf CPU-Zeit (3,35) in den letzten 15 Minuten.

Sie könnten auch mögen:

  1. 20 Befehlszeilentools zur Überwachung der Linux-Performance – Teil 1
  2. 13 Linux-Performance-Überwachungstools – Teil 2
  3. Perf- Ein Leistungüberwachungs- und Analysetool für Linux
  4. Nmon: Analysieren und Überwachen der Leistung des Linux-Systems

Zusammenfassend, wenn Sie ein Systemadministrator sind, dann sind hohe Lastdurchschnitte etwas, das Sie ernsthaft in Betracht ziehen sollten. Wenn sie hoch sind, über der Anzahl der CPU-Kerne, deutet dies auf eine hohe Nachfrage nach den CPUs hin, und niedrige Lastdurchschnitte unterhalb der Anzahl der CPU-Kerne zeigen an, dass die CPUs unterausgelastet sind.

Source:
https://www.tecmint.com/understand-linux-load-averages-and-monitor-performance/