Comprendre la moyenne de chargement sur Linux

Comprendre la moyenne de chargement sur Linux
La moyenne de chargement est une mesure de la quantité de travail par rapport aux cycles CPU gratuits disponibles sur un processeur système. Dans cet article, je vais définir le terme, démontrer comment Linux calcule cette valeur, puis fournir 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 la mesure la plus courante de la charge du processeur - un pourcentage.

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

Dans Windows, cela est dérivé en examinant à quel point le «occupé» Processus inactif du système est et utilise l'inverse pour représenter la charge du système. Par exemple, si le thread inactif exécute 99% du temps, la charge du processeur dans Windows serait de 1%. Cette valeur est facile à comprendre mais fournit moins de détails globaux sur le véritable statut du système.

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

Comprendre la moyenne de chargement dans Linux

Au début, cette couche supplémentaire de détails semble inutile si vous voulez simplement connaître l'état actuel de la charge du processeur dans votre système. Mais comme 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 du changement de charge du système au fil du temps en un seul coup d'œil de trois nombres

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»:

root @ Virgo [~] # W
21:08:43 en hausse 38 jours, 4:34, 4 utilisateurs, moyenne de chargement: 3.11, 2.75, 2.70

Le reste de la commande affichera qui est connecté et ce qu'ils exécutent, mais pour nos informations, il n'est pas pertinent, je l'ai donc coupé à partir de l'affichage ci-dessus.

Dans un système idéal, aucun processus ne doit être retenu par un autre processus (ou thread), mais Dans un système de processeur unique, Cela se produit lorsque la charge dépasse 1.00.

Les mots «système de processeur unique» sont incroyablement importants ici. Sauf si vous exécutez un ordinateur ancien, votre machine a probablement plusieurs cœurs de processeur. Dans la machine, je suis allumé, j'ai 16 cœurs:

root @ Virgo [~] # nproc
16

Dans ce cas, une moyenne de charge de 3.11 n'est pas du tout alarmant. Cela signifie simplement qu'un peu plus de trois processus étaient prêts à exécuter et que les 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 par une charge système basée sur un pourcentage, vous pouvez utiliser cette commande simple, sinon obtus,:

Cat / Proc / Loadavg | Cut -C 1-4 | Echo "échelle = 2; ($ (

Ces séquences de commande isolent la moyenne d'une minute via la coupe et l'écho.

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

Une minute à 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 base de 16 processeurs en guillemets car le calcul de la charge dans Linux est un peu plus nébuleux que Windows. L'administrateur système doit garder à l'esprit que:

  • La charge est exprimée dans les processus d'attente et les threads
  • Ce n'est pas une valeur instantanée, plutôt une moyenne, et
  • Son interprétation doit inclure le nombre de noyaux de processeur, et
  • Peut trop inflamer les E / S comme des lectures de disque

Pour cette raison, obtenir une poignée de charge de processeur sur un système Linux n'est pas entièrement une question empirique. Même si c'était le cas, la charge du processeur n'est pas une mesure adéquate de l'utilisation globale des ressources du système. En tant que tel, un administrateur Linux expérimenté envisagera la charge du processe.

Je serai d'attente

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 que le CPU attendait sur les commandes d'entrée ou de sortie pour terminer. Cela indique généralement une activité disque élevée. Bien qu'un pourcentage d'attente élevé à lui seul ne dégrade pas significativement les tâches liées au processe.

Les E / S élevées attendent sans aucune cause évidente pourraient 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 en surbrillance ci-dessus représentent le temps d'utilisateur et de noyau (système). Il s'agit d'une ventilation de la consommation globale de temps de CPU par les utilisateurs (i.e. applications, etc.) et le noyau (je.e. interaction avec les dispositifs système). Un temps d'utilisateur plus élevé indiquera plus d'utilisation du processeur par des programmes où le temps plus élevé du noyau indiquera plus.

Une charge assez moyenne

L'apprentissage de la relation de la charge de charge avec les performances réelles du système prend du temps, mais avant longtemps, vous verrez une corrélation distincte. Armé des subtilités des mesures de performances du système, vous serez en mesure de prendre de meilleures décisions sur les mises à niveau matérielle et l'utilisation des ressources du programme.