Verstinn Linux Luede Duerchschnëtt a Monitor Performance vu Linux


An dësem Artikel wäerte mir eng vun de kriteschen Linux Systemverwaltungsaufgaben erklären - Performance Iwwerwachung a Bezuch op System/CPU Belaaschtung a Lastduerchschnëtt.

Ier mer weider réckelen, loosst eis dës zwee wichteg Ausdréck an all Unix-ähnleche Systemer verstoen:

  • Systembelaaschtung/CPU Belaaschtung - ass eng Messung vun der CPU iwwer oder Ënnerbenotzung an engem Linux System; d'Zuel vun de Prozesser déi vun der CPU ausgeführt ginn oder am Waardezoustand.
  • Laaschtduerchschnëtt - ass déi duerchschnëttlech Systembelaaschtung berechent iwwer eng bestëmmten Zäitperiod vun 1, 5 a 15 Minutten.

Am Linux gëtt de Laaschtduerchschnëtt technesch ugeholl datt et e lafenden Duerchschnëtt vu Prozesser an der (Kernel) Ausféierungsschlaang ass, déi als lafend oder onënnerbrach markéiert ass.

Notéiert datt:

  • All wann net déi meescht Systemer ugedriwwe vu Linux oder aneren Unix-ähnleche Systemer weisen eventuell d'Laaschtduerchschnëttswäerter iergendwou fir e Benotzer.
  • E komplette Linux System kann e Laaschtduerchschnëtt vun Null hunn, ausser den Idle Prozess.
  • Bal all Unix-ähnlech Systemer zielen nëmmen Prozesser am Lafen oder Waardezoustand. Awer dëst ass net de Fall mat Linux, et enthält Prozesser an onënnerbrach Schlofzoustand; déi op aner Systemressourcen waarden wéi Disk I/O etc.

Wéi Monitor Linux System Load Moyenne

Et gi vill Manéiere fir de Systembelaaschtduerchschnëtt ze iwwerwaachen inklusiv Uptime déi weist wéi laang de System leeft, Zuel vun de Benotzer zesumme mat Laaschtduerchschnëtt:

$ uptime

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

D'Zuele gi vu lénks op riets gelies, an d'Ausgab hei uewen bedeit datt:

  • Laaschtduerchschnëtt iwwer déi lescht 1 Minutt ass 1,98
  • Laaschtduerchschnëtt iwwer déi lescht 5 Minutten ass 2,15
  • Laaschtduerchschnëtt iwwer déi lescht 15 Minutten ass 2,21

Héich Last Moyenne implizéiert datt e System iwwerlaascht ass; vill Prozesser waarden CPU Zäit.

Mir entdecken dëst an der nächster Sektioun a Relatioun mat der Zuel vun den CPU Cores. Zousätzlech kënne mir och aner bekannt Tools benotzen wéi Bléck, déi en Echtzäitzoustand vun engem lafende Linux System weisen, plus vill aner Tools:

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

D'Laaschtduerchschnëtter, déi vun dësen Tools gewise ginn, ass gelies /proc/loadavg Datei, déi Dir mat der Cat Kommando kucke kënnt wéi hei ënnen:

$ cat /proc/loadavg

2.48 1.69 1.42 5/889 10570

Fir d'Laaschtduerchschnëtt am Grafikformat ze iwwerwaachen, kuckt w.e.g.: ttyload - Weist eng Faarfkodéiert Grafik vum Linux Load Moyenne am Terminal

Op Desktop-Maschinnen ginn et grafesch User-Interface-Tools déi mir benotze kënne fir Systemlaaschtduerchschnëtter ze gesinn.

Verstoen System Duerchschnëtt Laascht an Relatioun Zuel vun CPUs

Mir kënnen net méiglecherweis Systembelaaschtung oder Systemleistung erklären ouni Liicht op den Impakt vun der Zuel vun den CPU-Cores op d'Leeschtung ze werfen.

  • Multi-Prozessor - ass wou zwee oder méi kierperlech CPU'en an engem eenzege Computersystem integréiert sinn.
  • Multi-Core Prozessor - ass eng eenzeg kierperlech CPU déi op d'mannst zwee oder méi getrennte Kären huet (oder wat mir och als Veraarbechtungseenheete bezeechnen) déi parallel funktionnéieren. Heescht en Dual-Core huet 2 zwee Veraarbechtungsunitéiten, e Quad-Core huet 4 Veraarbechtungsunitéiten a sou weider.

Ausserdeem gëtt et och eng Prozessortechnologie déi fir d'éischt vun Intel agefouert gouf fir de parallele Computing ze verbesseren, als Hyperthreading bezeechent.

Ënner Hyperthreading erschéngt en eenzege kierperleche CPU Kär als zwee logesch CPUs Kär zu engem Betribssystem (awer a Wierklechkeet gëtt et eng kierperlech Hardwarekomponent).

Notéiert datt en eenzegen CPU Kär nëmmen eng Aufgab gläichzäiteg ausféiere kann, sou datt Technologien wéi verschidde CPUs/Prozessoren, Multi-Core CPUs an Hyper-Threading zum Liewen bruecht goufen.

Mat méi wéi enger CPU kënne verschidde Programmer gläichzäiteg ausgefouert ginn. Hautdesdaags Intel CPUs benotzen eng Kombinatioun vu béide Multiple Cores an Hyper-Threading Technologie.

Fir d'Zuel vun de Veraarbechtungsunitéiten op engem System ze fannen, kënne mir d'nproc oder lscpu Kommandoen wéi follegt benotzen:

$ nproc
4

OR
lscpu

Eng aner Manéier fir d'Zuel vun de Veraarbechtungsunitéiten ze fannen andeems Dir grep Kommando benotzt wéi gewisen.

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

4

Elo, fir d'Systembelaaschtung weider ze verstoen, wäerte mir e puer Viraussetzungen huelen. Loosst eis soen datt mir Laaschtduerchschnëtt hei drënner hunn:

23:16:49 up  10:49,  5 user,  load average: 1.00, 0.40, 3.35

  • D'CPU gouf am Duerchschnëtt voll (100%) benotzt; 1 Prozesser lafen op der CPU (1.00) an der leschter 1 Minutt.
  • D'CPU war am Duerchschnëtt ëm 60% idle; keng Prozesser waarden op CPU Zäit (0,40) an de leschten 5 Minutten.
  • D'CPU gouf am Duerchschnëtt ëm 235% iwwerlaascht; 2.35 Prozesser ware fir CPU Zäit (3.35) an de leschten 15 Minutten.

  • Déi eng CPU war am Duerchschnëtt 100% Idle, eng CPU gouf benotzt; keng Prozesser waarden op CPU Zäit (1.00) an der leschter 1 Minutt.
  • D'CPUs waren am Duerchschnëtt ëm 160% Idle; keng Prozesser goufen CPU Zäit gewaart. (0.40) an de leschte 5 Minutten.
  • D'CPUs goufen duerchschnëttlech ëm 135% iwwerlaascht; 1.35 Prozesser waren op CPU Zäit gewaart. (3.35) an de leschten 15 Minutten.

Dir kënnt och gär hunn:

  1. 20 Command Line Tools fir Linux Performance ze iwwerwaachen - Deel 1
  2. 13 Linux Performance Monitoring Tools - Deel 2
  3. Perf- E Performance Monitoring and Analysis Tool fir Linux
  4. Nmon: Analyséieren a Monitor Linux System Leeschtung

Als Schlussfolgerung, wann Dir e Systemadministrator sidd, da sinn héich Belaaschtungsduerchschnëtter real fir Iech Suergen ze maachen. Wann se héich sinn, iwwer d'Zuel vun den CPU-Cores, bedeit et eng grouss Nofro fir d'CPUs, an d'niddereg Belaaschtungsduerchschnëtt ënner der Unzuel vun den CPU-Cores seet eis datt d'CPUs ënnerbenotzt sinn.