Website-Suche

Verstehen Sie die durchschnittlichen Linux-Lasten und überwachen Sie die Leistung von Linux


In diesem Artikel erklären wir eine der wichtigsten Aufgaben der Linux-Systemverwaltung – die Leistungsüberwachung in Bezug auf System-/CPU-Auslastung und Auslastungsdurchschnitte.

Bevor wir weitermachen, wollen wir diese beiden wichtigen Ausdrücke in allen Unix-ähnlichen Systemen verstehen:

  • Systemlast/CPU-Last – ist ein Maß für die Über- oder Unterauslastung der CPU in einem Linux-System; die Anzahl der Prozesse, die von der CPU ausgeführt werden oder sich im Wartezustand befinden.
  • Durchschnittliche Auslastung – ist die durchschnittliche Systemlast, die über einen bestimmten Zeitraum von 1, 5 und 15 Minuten berechnet wird.

Unter Linux wird technisch gesehen davon ausgegangen, dass der Lastdurchschnitt ein laufender Durchschnitt der Prozesse in der (Kernel-)Ausführungswarteschlange ist, die als ausgeführt oder nicht unterbrechbar gekennzeichnet sind.

Beachten Sie Folgendes:

  • Alle, wenn nicht die meisten Systeme, die mit Linux oder anderen Unix-ähnlichen Systemen betrieben werden, zeigen möglicherweise irgendwo die Lastdurchschnittswerte für einen Benutzer an.
  • Ein völlig im Leerlauf befindliches Linux-System kann einen Lastdurchschnitt von Null haben, mit Ausnahme des Leerlaufprozesses.
  • Fast alle Unix-ähnlichen Systeme zählen nur Prozesse im laufenden oder wartenden Zustand. Dies ist jedoch bei Linux nicht der Fall. Es umfasst Prozesse in ununterbrochenen Ruhezuständen. diejenigen, die auf andere Systemressourcen wie Festplatten-E/A usw. warten.

So überwachen Sie den Lastdurchschnitt des Linux-Systems

Es gibt zahlreiche Möglichkeiten, die durchschnittliche Systemauslastung zu überwachen, einschließlich der Betriebszeit, die anzeigt, wie lange das System bereits läuft, die Anzahl der Benutzer sowie die durchschnittliche Auslastung:

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 obige Ausgabe bedeutet Folgendes:

  • Der Auslastungsdurchschnitt der letzten 1 Minute beträgt 1,98
  • Der Auslastungsdurchschnitt der letzten 5 Minuten beträgt 2,15
  • Der Auslastungsdurchschnitt der letzten 15 Minuten beträgt 2,21

Hohe durchschnittliche Auslastungen deuten darauf hin, dass ein System überlastet ist. Viele Prozesse warten auf CPU-Zeit.

Wir werden dies im nächsten Abschnitt in Bezug auf die Anzahl der CPU-Kerne aufdecken. 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:

Oberbefehlshaber

top
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   
....

Blick-Tool

glances
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 in der Datei /proc/loadavg gelesen, die Sie mit dem Befehl cat wie folgt anzeigen können:

cat /proc/loadavg

2.48 1.69 1.42 5/889 10570

Um Lastdurchschnitte im Diagrammformat zu überwachen, schauen Sie sich Folgendes an: ttyload – Zeigt ein farbcodiertes Diagramm des Linux-Lastdurchschnitts im Terminal an

Auf Desktop-Computern gibt es grafische Benutzeroberflächentools, mit denen wir die durchschnittliche Systemlast anzeigen können.

Verständnis der durchschnittlichen Systemlast im Verhältnis zur Anzahl der CPUs

Wir können die Systemlast oder die Systemleistung unmöglich erklären, ohne den Einfluss der Anzahl der CPU-Kerne auf die Leistung zu beleuchten.

Multiprozessor vs. Multicore

  • Multiprozessor – bedeutet, dass zwei oder mehr physische CPUs in ein einziges Computersystem integriert sind.
  • Multi-Core-Prozessor – ist eine einzelne physische CPU, die über mindestens zwei oder mehr separate Kerne (oder was wir auch als Verarbeitungseinheiten bezeichnen können) verfügt, die parallel arbeiten. Das heißt, ein Dual-Core verfügt über zwei Prozessoreinheiten, ein Quad-Core über vier Prozessoreinheiten und so weiter.

Darüber hinaus gibt es auch eine Prozessortechnologie, die erstmals von Intel zur Verbesserung des parallelen Rechnens eingeführt wurde und als Hyper-Threading bezeichnet wird.

Beim Hyper-Threading erscheint ein einzelner physischer CPU-Kern für ein Betriebssystem als zwei logische CPU-Kerne (in Wirklichkeit gibt es jedoch eine physische Hardwarekomponente).

Beachten Sie, dass ein einzelner CPU-Kern jeweils nur eine Aufgabe ausführen kann. Daher wurden Technologien wie mehrere CPUs/Prozessoren, Multi-Core-CPUs und Hyper-Threading ins Leben gerufen.

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

Um die Anzahl der auf einem System verfügbaren Verarbeitungseinheiten zu ermitteln, können wir die Befehle nproc oder lscpu wie folgt verwenden:

nproc
4

OR
lscpu

Eine andere Möglichkeit, die Anzahl der Verarbeitungseinheiten mithilfe des grep-Befehls zu ermitteln, wie gezeigt.

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

4

Um nun die Systemlast besser zu verstehen, gehen wir von einigen Annahmen aus. Nehmen wir an, wir haben die folgenden Auslastungsdurchschnitte:

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

Das könnte Ihnen auch gefallen:

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

Zusammenfassend lässt sich sagen, dass für Sie als Systemadministrator eine hohe durchschnittliche Auslastung durchaus Anlass zur Sorge gibt. Wenn sie hoch sind, über der Anzahl der CPU-Kerne, bedeutet dies eine hohe Nachfrage nach den CPUs, und niedrige Auslastungsdurchschnitte unter der Anzahl der CPU-Kerne zeigen an, dass die CPUs nicht ausreichend ausgelastet sind.