Comment puis-je savoir quels processus provoquent des charges élevées s'ils ne sont pas utilisés avec un processeur élevé?


12

Parfois, mes serveurs affichent une moyenne de charge élevée dans le programme "top" (par exemple, la charge est de ~ 10 sur une machine à 4 cœurs), mais l'utilisation réelle du processeur n'est pas particulièrement élevée.

Je suppose que le problème est qu'il existe de nombreux travaux gourmands en E / S. Existe-t-il un moyen simple d'identifier ces travaux à l'origine de la charge, si leurs valeurs "% CPU" en haut ne sont pas si élevées?


Pourriez-vous coller la zone de résumé que vous voyez lorsque vous exécutez la topcommande?
mfriedman

Réponses:


7

iostatpeut rapporter des statistiques comme ça. Habituellement inclus dans votre distribution dans le package sysstat.

dstat pourrait aussi valoir le coup d'œil, c'est un remplacement moderne.


+1 parce iostatque ça allait être ma réponse.
Ernie

4

Si vous avez une comptabilité IO dans votre noyau, vous pouvez utiliser iotoppour donner des informations comme ça. De plus, des outils de surveillance comme collectd peuvent enregistrer et rapporter les données.


4

Pour trouver ce qui cause une charge élevée, vous pouvez vérifier quelques éléments.

  • vmstat -w vous montrera ovierwiem (processus, swap, mem, cpu, io, system)
  • pmstat -P ALL vous fournira des statistiques (avec% iowait) par cœur de processeur
  • iostat -x rechercher un pourcentage d'utilisation élevé, une attente longue ou une grande taille moyenne de file d'attente
    • creuser plus profondément avec iotop
  • ps -ax recherchez l'état D qui est un sommeil sans interruption (généralement IO), exécutez-le une fois de plus, vérifiez s'ils sont toujours en état D
    • creuser plus profondément avec strace
    • vérifier les fichiers et les connexions de ces processus avec lsof et netstat
  • sar / sysstat - avec cet outil, vous pouvez explorer non seulement les statistiques "maintenant" mais aussi vérifier ce qui se passait hier à minuit
    • sar -b - activités globales io
    • sar -d - activités individuelles de bloc de périphérique io
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.