- Load Average
-
Load average
Le load average désigne, sous les systèmes UNIX, une moyenne de la charge système, une mesure de la quantité de travail que fait le système durant la période considérée. Celle ci est disponible via la commande top ou uptime, ou encore via le fichier système /proc/loadavg.
Sommaire
Exemple
load average: 1.27, 0.92, 0.73
Le premier chiffre, 1.27, est une moyenne de la charge calculée sur une minute. Le second chiffre est calculé sur cinq minutes, et le troisième sur quinze minutes. Il est un très bon indicateur de la (sur)charge de travail d'un système, mais ne permet pas d'en identifier la cause.
Ce que représente la charge
La charge représente le nombre de processus en train d'utiliser ou en train d'attendre le processeur. Sous la majorité des systèmes, le nombre de processus bloqués est également inclus. Ceci rend l'interprétation du chiffre plus difficile.
Le nombre maximum de processus réellement en cours d'exécution dépend du nombre de processeurs: 1 pour un monoprocesseur, 2 pour un biprocesseur…
Une charge de 2 indique qu'il y a forcément un processus en attente sur un monoprocesseur, mais peut être simplement deux processus en cours d'exécution sur un biprocesseur.
Comment interpréter la charge ?
Cas d'un seul processeur, et d'optimisations systèmes (par opposition aux optimisations applicatives, à ne jamais négliger)
- La charge est < 1
Une charge < 1 indique qu'il n'y a pas assez de processus pour occuper complètement la machine. La "compétition" pour le processeur est donc inexistante; ce dernier exécute les instructions rapidement et est libéré. Un problème de performance proviendra donc certainement des demandes de traitement qui ne parviennent pas assez rapidement à la machine.
→ Pour améliorer les performances: effectuer plus de tâches simultanées, augmenter le débit des requêtes…
- La charge est constamment à 1
Une charge de 1 constante signifie qu'il y avait à tout moment un et un seul processus en état de travail. Aucun processus n'a donc "attendu son tour" pour être traité par le processeur. Cependant, s'il y a un processus unique qui occupe constamment le processeur, il pourrait éventuellement s'exécuter plus rapidement sur un processeur plus puissant. En effet, même si la file d'attente est vide, le processus "en cours" peut avoir besoin de plus de rapidité.
→ Pour améliorer les performances: s'il y a un seul processus, en ajouter et observer la charge. Sinon, l'équilibre est atteint, et plus de tâches à effectuer impliqueront une amélioration au niveau processeur, mémoire et/ou entrées-sorties.
- La charge est supérieure à 1
Ceci ne signifie pas forcément qu'un processeur plus rapide résoudrait le problème. En effet, la charge inclut généralement les processus en attente d'entrées-sorties. Un processus dans ce cas sera donc comptabilisé, mais il "attend" un périphérique d'I/O, et non pas le processeur. Il faut donc prêter attention aux autres affichages des commandes comme top; où l'utilisation processeur globale est également indiquée. Si le processeur est inactif (idle) à 90% mais que la charge est élevée, un processeur plus véloce n'y changera rien. S'il reste "collé" à 100% d'utilisation, alors il est certainement en cause.
→ Pour améliorer les performances: examiner le taux d'utilisation global du processeur. Minimiser si possible les I/O (la quantité de mémoire vive est elle suffisante?). Agir ensuite en conséquence sur les points faibles identifiés.
Calcul de la moyenne de charge
La moyenne affichée est calculée avec une pondération: plus la mesure est récente, et plus elle est importante. La décroissance du poids est exponentielle. Cette subtilité peut être ignorée dans la majorité des cas.
- Portail de l’informatique
Catégorie : Unix
Wikimedia Foundation. 2010.