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
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
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:
- 20 Befehlszeilentools zur Überwachung der Linux-Performance – Teil 1
- 13 Linux-Performance-Überwachungstools – Teil 2
- Perf- Ein Leistungüberwachungs- und Analysetool für Linux
- 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/