Charge CPU élevée mais les processus les plus performants en tête tout autour de 0%

11

Nous avons un serveur avec une charge élevée et une utilisation de processeur inhabituelles, mais nous ne pouvons pas comprendre pourquoi. Lorsque nous courons en haut, tous les procs semblent être très faibles en CPU.

http://cl.ly/2d1g0K3q261r0R0K3e35

Existe-t-il une meilleure façon de rechercher ce qui cause cela?

Ben
la source
Je dois noter que je suis sur Ubuntu 10.04
Ben

Réponses:

4

Je pense que ce bug est votre cas. D'après ce que je vois de la sortie, vous avez suffisamment de mémoire (notez les 14 Go mis en cache environ), pas de problèmes d'E / S, mais vous avez des processus liés à xen en cours d'exécution. Cela me fait penser que c'est un bug.

grs
la source
Cela s'est avéré être un bogue dans Ubuntu 10.04 et le matériel qu'AWS utilisait
Ben
7

La charge est une mesure de la charge de travail d'un système sur une base de 1, 5 et 15 minutes.

L'idée fausse la plus courante est que la moyenne de charge est purement liée à l'utilisation du processeur d'un système.
La charge intègre cependant des mesures supplémentaires telles que le processeur en attente d'E / S, ce qui, selon moi, est votre problème.

Sur la base de l'image, je suppose que vous avez manqué de mémoire et commencé à échanger des données sur le disque.

Un simple free -mvous dira combien de RAM et de swap sont utilisés.
La colonne intéressante est d'ailleurs la colonne gratuite -/+ buffers/cache.
S'il est proche de zéro, vous n'avez plus de RAM et devez agir en conséquence.

marque
la source
1
+1 pour l'échange. Vous pouvez utiliser iotopou vmstatpour essayer de voir s'il s'agit d'E / S.
Axel Knauf
1
- / + tampons / cache: 2933 14586
Ben
4

Remarqué que la moyenne de charge est assez élevée (68, wow). Est-il possible qu'il y ait beaucoup de processus qui prennent un peu de CPU, donc qui consomment ainsi tout le temps CPU? Peut-être que ces processus commencent et se terminent très rapidement, donc top ne peut pas capturer leur existence, vous pouvez essayer de voir si au sommet peut voir cela ou non.

Raymond Tau
la source
3

Essayer

iotop

IO était pour moi la plupart du temps.

MarcoHager
la source
2

Essayez d'utiliser:

top -o cpu

L' -oindicateur forcera top à ordonner les processus par utilisation du processeur dans l'ordre décroissant.

Bandit
la source
quand j'ai couru top -o cpuj'ai eu "top: argument inconnu 'o'"
Ben
Ok, essayez de courir dessus et de frapper opendant qu'il tourne. Il devrait vous demander une clé primaire. Tapez cpuet appuyez sur Entrée.
Bandit
1
même trié par cpu, il n'y a rien en haut de la liste au-dessus de 1% et il n'y en a qu'une poignée (2-3) à un moment donné. Le reste est à 0%
Ben
Sur Centos 7.2 au moins, la commande correcte pour le faire esttop -o %CPU
siliconrockstar
2

Il peut s'agir de fichiers verrouillés sur nfs ou de toute autre chose qui verrouille un fichier auquel un autre processus doit accéder.

pourrait également manquer le service configuré avec trop de threads actifs

John
la source
0

On dirait que l'utilisation du CPU provient d'un thread. topsemble ne pas en tenir compte. J'ai récemment vu cela sur un serveur mysql. il y a des instructions INSERT en cours d'exécution mais je n'ai pas pu obtenir les nouvelles lignes avec SELECT car un thread de mysqld mettait à jour l'index de la table. top montre une charge utilisateur de 100% sur un cœur mais chaque processus, y compris mysqld, était un processeur à 0,0%. quelques heures plus tard, le même SELECT a fourni le jeu de résultats escompté.

Voir également

Obtenir des statistiques de processeur par thread

processus 'htop' et threads cpu usage?

StefanKaerst
la source