Entendre les mitjanes de càrrega de Linux i supervisar el rendiment de Linux
En aquest article, explicarem una de les tasques crítiques d'administració del sistema Linux: la supervisió del rendiment pel que fa a la càrrega del sistema/CPU i les mitjanes de càrrega.
Abans de seguir endavant, entenem aquestes dues frases importants en tots els sistemes semblants a Unix:
- Càrrega del sistema/Càrrega de CPU: és una mesura de l'ús excessiu o insuficient de la CPU en un sistema Linux; el nombre de processos que s'estan executant per la CPU o en estat d'espera.
- Càrrega mitjana: és la càrrega mitjana del sistema calculada durant un període de temps determinat d'1, 5 i 15 minuts.
A Linux, tècnicament es creu que la mitjana de càrrega és una mitjana en execució dels processos de la seva cua d'execució (nucli) etiquetada com a en execució o ininterrompuda.
Tingues en compte que:
- Tots, si no la majoria dels sistemes alimentats per Linux o altres sistemes semblants a Unix, possiblement mostraran els valors mitjans de càrrega en algun lloc per a un usuari.
- Un sistema Linux totalment inactiu pot tenir una càrrega mitjana de zero, excloent el procés inactiu.
- Gairebé tots els sistemes semblants a Unix només compten processos en estat d'execució o d'espera. Però aquest no és el cas de Linux, inclou processos en estats de repòs ininterromput; aquells que esperen altres recursos del sistema, com ara E/S de disc, etc.
Com controlar la càrrega mitjana del sistema Linux
Hi ha nombroses maneres de controlar la mitjana de càrrega del sistema, inclosa el temps d'activitat que mostra quant de temps ha estat en funcionament el sistema, el nombre d'usuaris i les mitjanes de càrrega:
$ uptime 07:13:53 up 8 days, 19 min, 1 user, load average: 1.98, 2.15, 2.21
Els números es llegeixen d'esquerra a dreta i la sortida anterior significa que:
- la mitjana de càrrega durant l'últim minut és 1,98
- la mitjana de càrrega dels darrers 5 minuts és de 2,15
- la mitjana de càrrega dels darrers 15 minuts és de 2,21
Les mitjanes de càrrega altes impliquen que un sistema està sobrecarregat; molts processos estan esperant el temps de la CPU.
Ho descobrirem a la següent secció en relació amb el nombre de nuclis de CPU. A més, també podem utilitzar altres eines conegudes com ara mirades que mostren un estat en temps real d'un sistema Linux en funcionament, a més de moltes altres eines:
$ 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
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 ...
Les mitjanes de càrrega que mostren aquestes eines es llegeix el fitxer /proc/loadavg, que podeu veure amb l'ordre cat com a continuació:
$ cat /proc/loadavg 2.48 1.69 1.42 5/889 10570
Per controlar les mitjanes de càrrega en format de gràfic, consulteu: ttyload: mostra un gràfic codificat per colors de la mitjana de càrrega de Linux a la terminal
A les màquines d'escriptori, hi ha eines d'interfície gràfica d'usuari que podem utilitzar per veure les mitjanes de càrrega del sistema.
Entendre la càrrega mitjana del sistema en relació amb el nombre de CPU
No podem explicar la càrrega del sistema o el rendiment del sistema sense aportar llum sobre l'impacte del nombre de nuclis de CPU en el rendiment.
- Multiprocessador: és on s'integren dues o més CPU físiques en un sol sistema informàtic.
- Processador multinucli: és una única CPU física que té almenys dos o més nuclis separats (o el que també podem denominar unitats de processament) que funcionen en paral·lel. Això vol dir que un nucli dual té 2 unitats de processament, un de quatre nuclis té 4 unitats de processament i així successivament.
A més, també hi ha una tecnologia de processador que va ser introduïda per primera vegada per Intel per millorar la informàtica paral·lela, anomenada hiper threading.
Sota l'hiper threading, un únic nucli de CPU físic apareix com a nucli de dues CPU lògiques a un sistema operatiu (però, en realitat, hi ha un component de maquinari físic).
Tingueu en compte que un únic nucli de CPU només pot dur a terme una tasca alhora, per la qual cosa es van donar vida a tecnologies com ara múltiples CPU/processadors, CPU de diversos nuclis i hiper-threading.
Amb més d'una CPU, es poden executar diversos programes simultàniament. Les CPU Intel actuals utilitzen una combinació de múltiples nuclis i tecnologia d'hiper-threading.
Per trobar el nombre d'unitats de processament disponibles en un sistema, podem utilitzar les ordres nproc o lscpu de la següent manera:
$ nproc 4 OR lscpu
Una altra manera de trobar el nombre d'unitats de processament utilitzant l'ordre grep com es mostra.
$ grep 'model name' /proc/cpuinfo | wc -l 4
Ara, per entendre millor la càrrega del sistema, farem algunes hipòtesis. Suposem que tenim mitjanes de càrrega a continuació:
23:16:49 up 10:49, 5 user, load average: 1.00, 0.40, 3.35
- La CPU es va utilitzar completament (100%) de mitjana; S'ha executat 1 procés a la CPU (1.00) durant l'últim minut.
- La CPU estava inactiva un 60% de mitjana; cap procés no estava esperant el temps de CPU (0,40) durant els darrers 5 minuts.
- La CPU es va sobrecarregar un 235% de mitjana; 2.35 processos estaven esperant el temps de CPU (3.35) durant els darrers 15 minuts.
- L'única CPU estava 100% inactiva de mitjana, s'estava utilitzant una; cap procés no estava esperant el temps de CPU (1.00) durant l'últim minut.
- Les CPU estaven inactius un 160% de mitjana; cap procés esperava el temps de la CPU. (0,40) durant els últims 5 minuts.
- Les CPU es van sobrecarregar un 135% de mitjana; 1.35 processos estaven esperant el temps de la CPU. (3.35) durant els últims 15 minuts.
Potser també t'agrada:
- 20 eines de línia d'ordres per supervisar el rendiment de Linux - Part 1
- 13 Eines de control del rendiment de Linux - Part 2
- Perf: una eina de seguiment i anàlisi del rendiment per a Linux
- Nmon: analitzar i supervisar el rendiment del sistema Linux
En conclusió, si sou un administrador del sistema, les mitjanes de càrrega altes són reals per preocupar-se. Quan són alts, per sobre del nombre de nuclis de CPU, significa una gran demanda de les CPU, i les mitjanes de càrrega baixes per sota del nombre de nuclis de CPU ens diuen que les CPU estan infrautilitzades.