Surveillance

Comprendre la moyenne de charge sous Linux

Comprendre la moyenne de charge sous Linux
La moyenne de charge est une mesure de la quantité de travail par rapport aux cycles CPU libres disponibles sur un processeur système. Dans cet article, je vais définir le terme, montrer comment Linux calcule cette valeur, puis donner un aperçu de la façon d'interpréter la charge du système.

Différentes méthodes de calcul de la charge

Avant de plonger dans les moyennes de charge Linux, nous devons explorer les différentes façons dont la charge est calculée et aborder la mesure la plus courante de la charge CPU - un pourcentage.

Windows calcule la charge différemment de Linux, et comme Windows est historiquement plus populaire sur le bureau, la définition de la charge de Windows est généralement comprise par la plupart des utilisateurs d'ordinateurs. La plupart des utilisateurs de Windows ont vu la charge du système dans le gestionnaire de tâches s'afficher sous la forme d'un pourcentage allant de 0% à 100%.

Sous Windows, cela est obtenu en examinant à quel point le Processus d'inactivité du système est et en utilisant l'inverse pour représenter la charge du système. Par exemple, si le thread inactif s'exécute 99% du temps, la charge CPU dans Windows serait de 1%. Cette valeur est facile à comprendre mais fournit moins de détails généraux sur l'état réel du système.

Sous Linux, la charge moyenne est plutôt représentée par un nombre décimal commençant à 0.00. La valeur peut être grossièrement définie comme le nombre de processus au cours de la dernière minute qui ont dû attendre leur tour pour s'exécuter. Contrairement à Windows, la moyenne de charge Linux n'est pas une mesure instantanée. La charge est donnée en trois valeurs - la moyenne sur une minute, la moyenne sur cinq minutes et la moyenne sur quinze minutes.

Comprendre la moyenne de charge sous Linux

Au début, cette couche de détail supplémentaire semble inutile si vous voulez simplement connaître l'état actuel de la charge CPU dans votre système. Mais puisque les moyennes de trois périodes de temps sont données, plutôt qu'une mesure instantanée, vous pouvez avoir une idée plus complète de l'évolution de la charge du système au fil du temps en un seul coup d'œil de trois chiffres

L'affichage de la moyenne de charge est simple. Sur la ligne de commande, vous pouvez utiliser une variété de commandes. J'utilise simplement la commande "w":

racine@vierge [~]# w
21:08:43 jusqu'à 38 jours,  4:34,  4 utilisateurs,  charge moyenne : 3.11, 2.75, 2.70

Le reste de la commande affichera qui est connecté et ce qu'ils exécutent, mais pour nos besoins, ces informations ne sont pas pertinentes, je les ai donc coupées de l'affichage ci-dessus.

Dans un système idéal, aucun processus ne devrait être bloqué par un autre processus (ou thread), mais dans un système à processeur unique, cela se produit lorsque la charge dépasse 1.00.

Les mots « système à processeur unique » sont extrêmement importants ici. À moins que vous n'utilisiez un ancien ordinateur, votre machine a probablement plusieurs cœurs de processeur. Dans la machine sur laquelle je suis, j'ai 16 cœurs :

root@virgo [~]# nproc
16

Dans ce cas, une charge moyenne de 3.11 n'est pas du tout alarmant. Cela signifie simplement qu'un peu plus de trois processus étaient prêts à être exécutés et que des cœurs de processeur étaient présents pour gérer leur exécution. Sur ce système particulier, la charge devrait atteindre 16 pour être considérée à « 100% ».

Pour traduire cela en une charge système basée sur un pourcentage, vous pouvez utiliser cette commande simple, voire obtuse :

cat /proc/loadavg | couper -c 1-4 | echo "échelle=2; ($(Cette séquence de commandes isole la moyenne d'une minute via cut et la renvoie, divisée par le nombre de cœurs de processeur, via bc, une calculatrice en ligne de commande, pour dériver le pourcentage.

Cette valeur n'est en aucun cas scientifique, mais fournit une approximation approximative de la charge du processeur en pourcentage.

Une minute pour apprendre, une vie à maîtriser

Dans la section précédente j'ai mis l'exemple "100%" d'une charge de 16.0 sur un système de 16 CPU entre guillemets car le calcul de la charge sous Linux est un peu plus nébuleux que Windows. L'administrateur système doit garder à l'esprit que :

Pour cette raison, maîtriser la charge CPU sur un système Linux n'est pas entièrement une question empirique. Même si c'était le cas, la charge CPU à elle seule n'est pas une mesure adéquate de l'utilisation globale des ressources système. En tant que tel, un administrateur Linux expérimenté considérera la charge CPU de concert avec d'autres valeurs telles que l'attente d'E/S et le pourcentage de temps noyau par rapport au temps système.

Attente d'E/S

L'attente d'E/S est plus facilement visible via la commande « top » :

Dans la capture d'écran ci-dessus, j'ai mis en évidence la valeur d'attente d'E/S. Il s'agit d'un pourcentage de temps pendant lequel la CPU attendait que les commandes d'entrée ou de sortie se terminent. Cela indique généralement une activité élevée du disque. Bien qu'un pourcentage d'attente élevé à lui seul ne dégrade pas considérablement les tâches liées au processeur, il réduira les performances d'E/S pour d'autres tâches et rendra le système lent.

Une attente d'E/S élevée sans cause évidente peut indiquer un problème avec un disque. Utilisez la commande "dmesg" pour voir si des erreurs se sont produites.

Noyau vs. Le temps du système

Les valeurs surlignées ci-dessus représentent l'heure de l'utilisateur et du noyau (système). Il s'agit d'une ventilation de la consommation globale de temps CPU par les utilisateurs (i.e. candidatures, etc.) et le noyau (i.e. interaction avec les périphériques du système). Un temps d'utilisation plus élevé indiquera une utilisation plus importante du processeur par les programmes où un temps de noyau plus élevé indiquera plus de traitement au niveau du système.

Une charge assez moyenne

L'apprentissage de la relation entre la charge moyenne et les performances réelles du système prend du temps, mais vous verrez bientôt une corrélation distincte. Armé de la complexité des mesures de performance du système, vous serez en mesure de prendre de meilleures décisions concernant les mises à niveau matérielles et l'utilisation des ressources du programme.

Comment télécharger et jouer à Civilization VI de Sid Meier sur Linux
Présentation du jeu Civilization 6 est une version moderne du concept classique introduit dans la série de jeux Age of Empires. L'idée était assez sim...
Comment installer et jouer à Doom sur Linux
Introduction à Doom La série Doom est née dans les années 90 après la sortie du Doom original. Ce fut un succès instantané et à partir de ce moment-là...
Vulkan pour les utilisateurs Linux
Avec chaque nouvelle génération de cartes graphiques, nous voyons les développeurs de jeux repousser les limites de la fidélité graphique et se rappro...