Que signifie la charge moyenne sous Unix / Linux?

68

Si je cours uptime, je reçois quelque chose comme ça:

10:50:30 up 366 days, 23:27,  1 user,  load average: 1.27, 2.06, 1.54

Que signifient ces chiffres à la fin? La page de manuel me dit que c’est "la charge moyenne du système au cours des 1, 5 et 15 dernières minutes". Mais quelle est l'échelle? Est-ce que 1,27 est haut? Faible? Cela dépend-il de mon système?

John Fouhy
la source
2
Je me demande comment la charge moyenne devrait être interprétée sur un système multiprocesseur.
Nagul
3
En règle générale, vous devez diviser la charge moyenne par le nombre de processeurs pour les systèmes multicœurs. Ainsi, une charge de 2,0 sur un système dual core équivaut à peu près à 1,0 sur un système simple core. Ce n'est pas tout à fait vrai, à cause de choses comme les entrées / sorties de disque et le trafic réseau, mais la charge est un peu approximative.
Mike Cooper
1
J'ai trouvé ce blog vraiment utile: Comprendre la charge de processeur Linux
lundi

Réponses:

59

La moyenne de charge est une indication du nombre moyen de processus, qui demande simultanément l’attention du processeur.

En règle générale, si un processus fonctionne à 100% et qu'il reste comme cela pendant toute l'éternité, vous pouvez vous attendre à ce que toutes les valeurs s'approchent de «1».

Généralement, il s'agit d'une informatique aussi efficace que possible, sans pertes dues aux changements de contexte.

Cependant, sur les systèmes d’exploitation multitâches modernes, plus d’un élément nécessite une attention particulière de la part du processeur. Par conséquent, sous une charge modérée d’un processus unique, la charge moyenne devrait varier entre 0,8 et 2.

Si vous décidez de faire quelque chose de fou, comme construire un noyau avec make -j 60un seul processeur logique, alors la charge moyenne se précipiterait vers 60 et votre ordinateur vous serait incroyablement inutile (changement de contexte par décès).

Il convient également de noter que cette mesure est indépendante du nombre de cœurs et de processeurs. Pour un système à deux cœurs, l'exécution d'un processus consommant un cœur entier (en laissant l'autre inactif) entraîne une charge moyenne de 1,0. Pour décider de la charge d'un système, vous devez connaître le nombre de cœurs et procéder à la division vous-même.

Kent Fredric
la source
1
Ainsi, une charge moyenne inférieure à 1 signifie "Les processus ne doivent généralement jamais attendre"? Puis-je interpréter une charge moyenne de 2 comme "Chaque processus prend environ deux fois plus de temps que dans des conditions idéales"? (Je sais qu'il y a des I / O à m'inquiéter aussi)
John Fouhy
Oui, c'est logique, en ignorant les opérations d'information;)
Kent Fredric
@KentFredric "En règle générale, il s'agit d'une informatique aussi efficace que possible, sans pertes dues aux changements de contexte." ... un processus fonctionnant à 100% est-il efficace en permanence? Il me manque sûrement quelque chose de fondamental ici. Pourriez-vous s'il vous plaît expliquer ce que vous vouliez dire? Je suis confus quant à la façon dont un processus monopolisant toutes les ressources de l'unité centrale peut être décrit comme efficace.
Geek
2
Je sais qu'un processus fonctionnant à 100% ne semble pas très "efficace", mais si le processus se limitait arbitrairement à une utilisation de 20%, il prendrait 5 fois plus de temps. Donc, ici, efficacité signifie "utilisation optimale des ressources".
Kent Fredric
1
Ainsi, pour un système à noyau n, une charge moyenne de n signifie que chaque cœur traite / était en train de traiter un processus 100% du temps et est donc le plus efficace?
joshreesjones
9

homme 5 proc:

/ proc / loadavg Les trois premiers champs de ce fichier sont des valeurs moyennes de chargement indiquant le nombre de travaux dans la file d'attente (état R) ou en attente d'E / S de disque (état D) moyennés sur 1, 5 et 15 minutes. . Ils sont identiques aux valeurs de charge moyennes données par uptime (1) et d’autres programmes.

fho
la source
3

En général, il mesure le nombre de processus actifs à un moment donné, mais les mesures utilisées pour le calculer diffèrent sur certains systèmes. Le seul article que j'ai trouvé qui l'explique assez bien est celui-ci .

John T
la source
2
Ce lien est daté de '03. Linux 2.6 est sorti depuis. (Vous remarquerez qu'ils utilisent la version 2.0, Ouch.) Dans la pratique, les statistiques semblent être quelque peu différentes de celles indiquées sur cette page.
Kent Fredric
En voici un de la fin de 2006, qui n'est pas si différent de l'article lié: linuxjournal.com/article/9001
nagul
Votre lien fonctionne toujours et la sortie de leur terminal date de 2001. 😂 Quelle merveille!
MS Berends
2

Je cite une référence de cours:

La moyenne de charge est la moyenne du nombre de charge pour une période de temps donnée. Il prend en compte les processus qui sont:

  • Activement en cours d'exécution sur un processeur.
  • Considéré comme exécutable, mais en attendant qu'un processeur soit disponible.
  • Sleeping: c'est-à-dire attendre qu'une sorte de ressource (généralement une E / S) soit disponible.

Je cite plus loin au sujet de l' interprétation de la charge moyenne :

La moyenne de charge est affichée à l'aide de trois ensembles de chiffres différents, comme illustré dans l'exemple suivant:

La dernière information est la charge moyenne du système. En supposant que notre système soit un système à un seul processeur, le chiffre 0,25 signifie que le système a été utilisé en moyenne au cours des dernières minutes à 25%. 0,12 dans la position suivante signifie que, au cours des 5 dernières minutes, le système a été utilisé en moyenne à 12%; et 0,15 en position finale signifie que, au cours des 15 dernières minutes, le système a été utilisé en moyenne à 15%. Si nous voyions une valeur de 1,00 en deuxième position, cela impliquerait que le système à processeur unique a été utilisé à 100%, en moyenne, au cours des 5 dernières minutes; c’est bien si nous voulons utiliser pleinement un système. Une valeur supérieure à 1,00 pour un système à processeur unique implique que le système a été surexploité: il y avait plus de processus nécessitant un processeur que le processeur n'était disponible.

Si nous avions plus d'un processeur, par exemple un système à quatre processeurs, nous diviserions le nombre moyen de charges par le nombre de processeurs. Dans ce cas, par exemple, voir une charge moyenne d'une minute sur 4,00 implique que le système dans son ensemble était utilisé à 100% (4,00 / 4) au cours de la dernière minute.

Les augmentations à court terme ne sont généralement pas un problème. Un pic élevé que vous voyez est probablement une poussée d'activité, pas un nouveau niveau. Par exemple, au démarrage, de nombreux processus démarrent, puis l'activité se calme. Si un pic élevé est observé dans les charges moyennes de 5 et 15 minutes, cela pourrait être préoccupant.

Ely
la source
Il serait pratique d’ajouter un lien vers votre référence.
Pierz
C'est difficile. Il s’agit d’un cours en ligne de la Linux Foundation destiné à préparer l’examen du LFCS.
Ely