Pourquoi / comment «uptime» affiche-t-il une charge CPU> 1?

14

J'ai un processeur 1 cœur installé sur mon PC. Parfois, uptimeaffiche la charge> 1. Comment est-ce possible et qu'est-ce que cela signifie?

EDIT: Les valeurs vont jusqu'à 2.4

Richard Rodriguez
la source
Remarque: loadest différent de load average. Comme l'a dit @michas, la charge est un indicateur du nombre de processus qui attendent d'être exécutés, mais la charge moyenne est la charge moyenne du système calculée sur une période donnée de 1, 5 et 15 minutes.
Mohammad Kholghi

Réponses:

20

La charge n'est pas égale à l'utilisation du processeur. Il s'agit essentiellement d'un indicateur du nombre de processus en attente d'exécution.

Quelques liens utiles:

michas
la source
Oh, ok, ça a du sens. Existe-t-il un moyen d'obtenir l'utilisation du processeur, pas de charger?
Richard Rodriguez
Eh bien, généralement, vous pourriez avoir de nombreux processeurs. L'un pourrait être totalement occupé et l'autre au ralenti. Jetez un oeil à htopun bel aperçu "graphique".
michas
2
Ceci est une erreur. La moyenne de charge est une mesure du nombre de processus prêts à être exécutés. Cela inclut les processus en attente, mais également les processus en cours d'exécution . Donc, si la moyenne de charge est 1, cela signifie qu'en moyenne (pour la période de temps donnée) un CPU était en cours d'utilisation; s'il est deux, cela signifie qu'en moyenne, deux processeurs étaient en cours d'utilisation. En tant que telle, une moyenne de charge particulière pour un système à processeur unique n'est pas la même chose que la même moyenne de charge pour un système multicœur.
Wouter Verhelst
7

uptimemontre la charge du système (pas exactement l'utilisation du processeur), qui est décrite man uptimecomme suit:

Les moyennes de charge système sont le nombre moyen de processus qui sont dans un état exécutable ou ininterrompu. Un processus dans un état exécutable utilise la CPU ou attend d'utiliser la CPU. Un processus en état ininterrompu attend un accès E / S, par exemple en attente de disque. Les moyennes sont prises sur les trois intervalles de temps. Les moyennes de charge ne sont pas normalisées pour le nombre de CPU dans un système, donc une moyenne de charge de 1 signifie qu'un seul système CPU est chargé tout le temps tandis que sur un système à 4 CPU, cela signifie qu'il était inactif 75% du temps.

Tant que la charge est inférieure au nombre de cœurs de processeur que vous avez, cela devrait aller. S'il dépasse, cela signifie que votre système n'est pas en mesure de faire face à sa charge de travail "en temps réel". Ainsi, certains processus doivent attendre pour obtenir le temps CPU (ou l'accès IO). Une file d'attente est créée.

Si vous avez une charge de 2,7, cela signifie qu'en moyenne (au cours des 1, 5 ou 15 dernières minutes, selon la valeur que vous regardez), 2,7 processus tentent de s'exécuter en parallèle, mais vous n'avez qu'un seul cœur, donc votre système est surchargé. Vous en demandez trop.

Pas de panique cependant, ce n'est peut-être pas un problème: une fois le travail terminé, les choses reviennent généralement à la normale.

Totor
la source
4

Uptime affiche la sortie de /proc/loadavgpour les charges.

La page de manuel man 5 procdit

   /proc/loadavg
          The first three fields in this file are load average figures giving
          the  number  of jobs in the run queue (state R) or waiting for disk
          I/O (state D) averaged over 1, 5, and 15  minutes. 

Vous pouvez donc avoir des charges élevées même si vous avez 0% d'utilisation du processeur. Un cœur peut gagner des charges jusqu'à 100% ou 1 sur des systèmes multiprocesseurs.

Voir aussi Charge CPU élevée lors des E / S

Communauté
la source
-2
 ps aux --sort -rss |head -15

Cela triera les 15 processus les plus utilisés par la mémoire rss

De plus, cela triera les processus les plus utilisés par processeur et mémoire

 ps aux --sort -pid |head -15

Si vous avez 1 charge CPU de plus que 1 est un avertissement, examinez la liste des processus et voyez qui utilise le plus de CPU et de RAM

Lorsque vous voyez les processus les plus utilisés, essayez de voir quels fichiers sont ouverts avec

lsof -p [PID_most_used]

Ce serait bien aussi si vous donnez ouptut depuis la commande supérieure

klerk
la source
1
rss n'est pas lié à la moyenne de charge, de quoi parlez-vous?
Wouter Verhelst