Recherche de site Web

Comprendre les moyennes de charge Linux et surveiller les performances de Linux


Dans cet article, nous allons expliquer l’une des tâches critiques de l’administration du système Linux : la surveillance des performances en ce qui concerne la charge du système/processeur et les moyennes de charge.

Avant d’aller plus loin, comprenons ces deux phrases importantes dans tous les systèmes de type Unix :

  • Charge du système/Charge du processeur : mesure de la surutilisation ou de la sous-utilisation du processeur dans un système Linux ; le nombre de processus en cours d’exécution par le processeur ou en attente.
  • Charge moyenne – est la charge moyenne du système calculée sur une période de temps donnée de 1, 5 et 15 minutes.

Sous Linux, la load-average est techniquement considérée comme une moyenne courante des processus dans sa file d’exécution (noyau) étiquetés comme en cours d’exécution ou ininterruptibles.

Notez que :

  • Si ce n’est pas le cas, la plupart des systèmes fonctionnant sous Linux ou d’autres systèmes de type Unix afficheront peut-être les valeurs moyennes de charge quelque part pour un utilisateur.
  • Un système Linux carrément inactif peut avoir une charge moyenne de zéro, à l’exclusion du processus inactif.
  • Presque tous les systèmes de type Unix ne comptent que les processus en cours d’exécution ou en attente. Mais ce n’est pas le cas avec Linux, il inclut des processus dans des états de veille ininterrompus ; ceux qui attendent d’autres ressources système comme les E/S de disque, etc.

Comment surveiller la charge moyenne du système Linux

Il existe de nombreuses façons de surveiller la charge moyenne du système, y compris le temps de disponibilité qui indique la durée de fonctionnement du système, le nombre d’utilisateurs ainsi que les moyennes de charge :

$ uptime

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

Les chiffres sont lus de gauche à droite, et le résultat ci-dessus signifie que :

  • La charge moyenne sur les 1 dernière minute est de 1,98
  • La charge moyenne sur les 5 dernières minutes est de 2,15
  • La charge moyenne sur les 15 dernières minutes est de 2,21

Des moyennes de charge élevées impliquent qu’un système est surchargé ; de nombreux processus attendent du temps CPU.

Nous le découvrirons dans la section suivante en ce qui concerne le nombre de cœurs de processeur. De plus, nous pouvons également utiliser d’autres outils bien connus tels que top et glances qui affichent un état en temps réel d’un système Linux en cours d’exécution, ainsi que de nombreux autres outils :

Commande supérieure

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

Outil Regards

$ 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 moyennes de charge affichées par ces outils sont le fichier read /proc/loadavg, que vous pouvez afficher à l’aide de la commande cat comme ci-dessous :

$ cat /proc/loadavg

2.48 1.69 1.42 5/889 10570

Pour surveiller les moyennes de charge au format graphique, consultez : ttyload - Affiche un graphique codé en couleur de la moyenne de charge Linux dans le terminal

Sur les ordinateurs de bureau, il existe des outils d’interface utilisateur graphique que nous pouvons utiliser pour afficher les moyennes de charge du système.

Comprendre la charge moyenne du système par rapport au nombre de processeurs

Nous ne pouvons pas expliquer la charge ou les performances du système sans mettre en lumière l’impact du nombre de cœurs de processeur sur les performances.

Multiprocesseur Vs multicœur

  • Multiprocesseur : deux processeurs physiques ou plus sont intégrés dans un seul système informatique.
  • Processeur multicœur – est un processeur physique unique qui a au moins deux cœurs distincts ou plus (ou ce que nous pouvons également appeler des unités de traitement) qui fonctionnent en parallèle. Cela signifie qu’un double cœur a 2 deux unités de traitement, un quad-core a 4 unités de traitement et ainsi de suite.

En outre, il existe également une technologie de processeur qui a été introduite pour la première fois par Intel pour améliorer le calcul parallèle, appelé hyper threading.

Dans le cadre de l’hyperthreading, un seul cœur de processeur physique apparaît comme deux cœurs de processeur logiques pour un système d’exploitation (mais en réalité, il existe un composant matériel physique).

Notez qu’un seul cœur de processeur ne peut effectuer qu’une seule tâche à la fois, c’est pourquoi des technologies telles que plusieurs processeurs/processeurs, des processeurs multicœurs et l’hyper-threading ont pris vie.

Avec plus d’un processeur, plusieurs programmes peuvent être exécutés simultanément. Les processeurs Intel actuels utilisent une combinaison de plusieurs cœurs et de la technologie hyper-threading.

Pour trouver le nombre d’unités de traitement disponibles sur un système, nous pouvons utiliser les commandes nproc ou lscpu comme suit :

$ nproc
4

OR
lscpu

Une autre façon de trouver le nombre d’unités de traitement à l’aide de la commande grep comme indiqué.

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

4

Maintenant, pour mieux comprendre la charge du système, nous allons prendre quelques hypothèses. Disons que nous avons des moyennes de charge ci-dessous :

23:16:49 up  10:49,  5 user,  load average: 1.00, 0.40, 3.35
Sur un système à cœur unique, cela signifierait :
  • Le processeur a été entièrement utilisé (100 %) en moyenne ; 1 processus étaient en cours d’exécution sur le processeur (1,00) au cours de la dernière minute.
  • Le processeur était inactif à 60 % en moyenne ; aucun processus n’attendait de temps CPU (0,40) au cours des 5 dernières minutes.
  • Le processeur était surchargé de 235 % en moyenne ; 2,35 processus attendaient du temps CPU (3,35) au cours des 15 dernières minutes.
Sur un système à double cœur, cela signifierait :
  • Le processeur était inactif à 100 % en moyenne, un processeur était utilisé ; aucun processus n’attendait le temps CPU (1,00) au cours de la dernière minute.
  • Les processeurs étaient inactifs à 160 % en moyenne ; aucun processus n’attendait de temps CPU. (0,40) au cours des 5 dernières minutes.
  • Les processeurs étaient surchargés de 135 % en moyenne ; 1.35 processus attendaient du temps CPU. (3.35) au cours des 15 dernières minutes.

Vous aimerez peut-être aussi :

  1. 20 outils en ligne de commande pour surveiller les performances de Linux - Partie 1
  2. 13 Outils de surveillance des performances Linux - Partie 2
  3. Perf - Un outil de surveillance et d’analyse des performances pour Linux
  4. Nmon : Analyser et surveiller les performances du système Linux

En conclusion, si vous êtes un administrateur système, il faut s’inquiéter des moyennes de charge élevées. Lorsqu’ils sont élevés, au-dessus du nombre de cœurs de processeur, cela signifie une forte demande pour les processeurs, et les moyennes de charge faibles inférieures au nombre de cœurs de processeur nous indiquent que les processeurs sont sous-utilisés.

Articles connexes: