Как я могу сказать, какие процессы вызывают высокие нагрузки, если они не загружаются из-за высокой загрузки процессора?


12

Иногда мои серверы показывают высокую среднюю нагрузку в «верхней» программе (например, нагрузка ~ 10 на 4-ядерном компьютере), но фактическая загрузка ЦП не особенно высока.

Я предполагаю, что проблема в том, что выполняется много заданий с интенсивным вводом-выводом. Есть ли какой-нибудь простой способ определить эти задания, которые вызывают нагрузку, если их значения «% CPU» вверху не так высоки?


Не могли бы вы вставить итоговую область, которую вы видите, когда запускаете topкоманду?
mfriedman

Ответы:


7

iostatможет сообщить статистику, как это. Обычно входит в ваш дистрибутив в составе пакета sysstat.

Также стоит посмотреть на dstat , это современная замена.


+1 потому что iostatсобирался быть моим ответом.
Эрни


4

Чтобы найти причину высокой нагрузки, вы можете проверить несколько вещей.

  • vmstat -w покажет вам ovierwiem (процессы, swap, mem, cpu, io, system)
  • pmstat -P ALL предоставит вам статистику (с% iowait) на ядро ​​процессора
  • iostat -x ищите высокий% util или long await или большой средний размер очереди
    • копать глубже iotop
  • ps -ax найдите состояние D, которое является непрерывным сном (обычно IO), запустите его еще раз, проверьте, находятся ли они все еще в состоянии D
    • копать глубже со страсом
    • проверять файлы и соединения этих процессов с помощью lsof и netstat
  • sar / sysstat - с помощью этого инструмента вы можете изучать не только статистику «сейчас», но и проверять, что происходило вчера в полночь
    • sar -b - общая деятельность
    • sar -d - индивидуальное блочное устройство и деятельность
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.