In dit artikel zullen we een van de kritieke taken van Linux systeembeheer uitleggen – prestatiebewaking met betrekking tot systeem/CPU-belasting en belastingsgemiddelden.
Voordat we verder gaan, laten we deze twee belangrijke termen begrijpen in alle Unix-achtige systemen:
- Systeembelasting/CPU-belasting – is een meting van CPU-over- of onderbenutting in een Linux-systeem; het aantal processen dat door de CPU wordt uitgevoerd of in de wachtstand staat.
- Belastingsgemiddelde – is het gemiddelde systeembelasting berekend over een bepaalde periode van 1, 5 en 15 minuten.
In Linux wordt de belastingsgemiddelde technisch gezien beschouwd als een lopend gemiddelde van processen in de (kernel) uitvoeringswachtrij die worden aangeduid als actief of niet-onderbreekbaar.
Merk op dat:
- Alle, zo niet de meeste systemen aangedreven door Linux of andere Unix-achtige systemen zullen mogelijk de belastingsgemiddelde waarden ergens tonen voor een gebruiker.
- A downright idle Linux system may have a load average of zero, excluding the idle process.
- Bijna alle Unix-achtige systemen tellen alleen processen in de actieve of wachtende toestanden. Maar dit is niet het geval bij Linux, het omvat processen in niet-onderbreekbare slaaptoestanden; die wachten op andere systeembronnen zoals schijf-I/O enz.
Hoe Linux Systeembelastingsgemiddelde te bewaken
Er zijn talloze manieren om het systeembelastingsgemiddelde te bewaken, waaronder uptime die laat zien hoelang het systeem al draait, aantal gebruikers samen met belastingsgemiddelden:
$ uptime 07:13:53 up 8 days, 19 min, 1 user, load average: 1.98, 2.15, 2.21
De cijfers worden van links naar rechts gelezen, en de bovenstaande uitvoer betekent dat:
- belastingsgemiddelde over de laatste 1 minuut is 1.98
- De gemiddelde belasting over de laatste 5 minuten is 2.15
- De gemiddelde belasting over de laatste 15 minuten is 2.21
Hoge belastinggemiddelden geven aan dat een systeem overbelast is; veel processen wachten op CPU-tijd.
We zullen dit onthullen in de volgende sectie met betrekking tot het aantal CPU-cores. Daarnaast kunnen we ook andere bekende tools gebruiken zoals top en glances die een realtime status van een draaiend Linux-systeem weergeven, plus vele andere tools:
Top Command
$ 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 ...
De belastinggemiddelden die door deze tools worden weergegeven, worden gelezen uit het /proc/loadavg-bestand, dat u kunt bekijken met het cat commando zoals hieronder:
$ cat /proc/loadavg 2.48 1.69 1.42 5/889 10570
Om belastinggemiddelden in grafiekformaat te monitoren, bekijk: ttyload – Toont een Kleurgecodeerde Grafiek van Linux Belastinggemiddelde in Terminal
Op desktopmachines zijn er grafische gebruikersinterface-tools die we kunnen gebruiken om systeembelastinggemiddelden te bekijken.
Begrip van Gemiddelde Systeembelasting in Relatie tot Aantal CPU’s
We kunnen het systeemgebruik of de systeemprestaties niet uitleggen zonder in te gaan op de invloed van het aantal CPU-cores op de prestaties.
Multi-processor Vs Multi-core
- Multi-processor – is waar twee of meer fysieke CPU’s zijn geïntegreerd in een enkel computersysteem.
- Multi-core processor – is een enkele fysieke CPU die minstens twee of meer afzonderlijke cores heeft (of wat we ook kunnen aanduiden als verwerkingsunits) die parallel werken. Dit betekent dat een dual-core 2 verwerkingsunits heeft, een quad-core 4 verwerkingsunits enzovoort.
Bovendien is er ook een processortechnologie die door Intel is geïntroduceerd om parallelle berekeningen te verbeteren, bekend als hyperthreading.
Onder hyperthreading lijkt een enkele fysieke CPU-kern als twee logische CPU-kernen voor een besturingssysteem (maar in werkelijkheid is er één fysiek hardwareonderdeel).
Merk op dat een enkele CPU-kern slechts één taak tegelijk kan uitvoeren, dus technologieën zoals meerdere CPU’s/processoren, multi-core CPU’s en hyperthreading werden tot leven gebracht.
Met meer dan één CPU kunnen verschillende programma’s tegelijk worden uitgevoerd. Huidige Intel CPU’s gebruiken een combinatie van zowel meerdere cores als hyperthreading-technologie.
Om het aantal beschikbare verwerkingsunits op een systeem te vinden, kunnen we de nproc of lscpu commando’s als volgt gebruiken:
$ nproc 4 OR lscpu
Een andere manier om het aantal verwerkingsunits te vinden met behulp van het grep-commando zoals getoond.
$ grep 'model name' /proc/cpuinfo | wc -l 4
Nu, om de systeembelasting verder te begrijpen, zullen we een paar aannames doen. Laten we zeggen dat we belastingsgemiddelden hebben onder:
23:16:49 up 10:49, 5 user, load average: 1.00, 0.40, 3.35
Op een systeem met één kern zou dit betekenen:
- De CPU werd gemiddeld volledig (100%) gebruikt; 1 proces draaide op de CPU (1,00) gedurende de laatste 1 minuut.
- De CPU was gemiddeld 60% inactief; er waren geen processen die wachtten op CPU-tijd (0,40) gedurende de laatste 5 minuten.
- De CPU was gemiddeld overbelast met 235%; 2,35 processen wachtten op CPU-tijd (3,35) gedurende de laatste 15 minuten.
Op een systeem met twee kernen zou dit betekenen:
- De ene CPU was gemiddeld 100% inactief, de andere CPU werd gebruikt; er waren geen processen die wachtten op CPU-tijd (1,00) gedurende de laatste 1 minuut.
- De CPU’s waren gemiddeld 160% inactief; er waren geen processen die wachtten op CPU-tijd (0,40) gedurende de laatste 5 minuten.
- De CPU’s waren gemiddeld overbelast met 135%; 1,35 processen wachtten op CPU-tijd (3,35) gedurende de laatste 15 minuten.
Je zou ook leuk vinden:
- 20 Command Line Tools om Linux-prestaties te monitoren – Deel 1
- 13 Linux Prestatiemonitoringtools – Deel 2
- Perf- Een prestatiebewakings- en analysesysteem voor Linux
- Nmon: Analyseer en bewaak de prestaties van het Linux-systeem
Concluderend, als u een systeembeheerder bent, zijn hoge belastinggemiddelden echt iets om u zorgen over te maken. Wanneer ze hoog zijn, boven het aantal CPU-cores, duidt dit op een hoge vraag naar de CPU’s, en lage belastinggemiddelden onder het aantal CPU-cores vertellen ons dat de CPU’s onderbenut zijn.
Source:
https://www.tecmint.com/understand-linux-load-averages-and-monitor-performance/