Иногда мои серверы показывают высокую среднюю нагрузку в «верхней» программе (например, нагрузка ~ 10 на 4-ядерном компьютере), но фактическая загрузка ЦП не особенно высока.
Я предполагаю, что проблема в том, что выполняется много заданий с интенсивным вводом-выводом. Есть ли какой-нибудь простой способ определить эти задания, которые вызывают нагрузку, если их значения «% CPU» вверху не так высоки?
top
команду?Ответы:
iostat
может сообщить статистику, как это. Обычно входит в ваш дистрибутив в составе пакета sysstat.Также стоит посмотреть на dstat , это современная замена.
источник
iostat
собирался быть моим ответом.Если в вашем ядре есть учет ввода-вывода , вы можете использовать
iotop
эту информацию. Кроме того, инструменты мониторинга, такие как collectd, могут записывать и сообщать о данных.источник
Чтобы найти причину высокой нагрузки, вы можете проверить несколько вещей.
vmstat -w
покажет вам ovierwiem (процессы, swap, mem, cpu, io, system)pmstat -P ALL
предоставит вам статистику (с% iowait) на ядро процессораiostat -x
ищите высокий% util или long await или большой средний размер очередиiotop
ps -ax
найдите состояние D, которое является непрерывным сном (обычно IO), запустите его еще раз, проверьте, находятся ли они все еще в состоянии Dsar -b
- общая деятельностьsar -d
- индивидуальное блочное устройство и деятельностьисточник