Если top показывает высокие нагрузки, и вы не знаете, выполняет ли процесс, вызывающий его, процессорное время или выполняет сетевой ввод-вывод (не локальный ввод-вывод), как вы можете это выяснить?
На нашем сервере я вижу высокие значения нагрузки, но в сочетании с 60% -70% простоя и около 25% пользователя. Я хотел бы знать, как интерпретировать такие значения, но в Интернете я почти всегда читаю, что вы можете использовать iostat, чтобы увидеть, уничтожает ли процесс ваши диски. Но я уже точно знаю, что это не так. У рассматриваемого процесса также нет проблем с выполнением своей работы, но нагрузка все еще высока.
Итак, есть ли способ узнать больше, какая часть вызвана сетевым ожиданием, а какая часть вызвана реальным процессором? И что означает «холостой» в топ?
Для ясности: с нагрузкой я имею в виду 3 числа, которые обозначают среднее число процессов в очереди на ядро. На этой машине 8 ядер, и их число достигает 25, то есть нагрузка составляет 2,5 на ядро.
htop
для вглядывания в процессы. В частности, он может позволить вам выбрать процесс, а затем, используя l
команду, он покажет вам все открытые файлы, lsof
включая IPv4
и IPv6
потоковые устройства и тому подобное. Если вы strace
установили на свой компьютер, вы также можете выполнять отладку системных вызовов и сигналов. Не совсем ответ, но другой инструмент, который я бы рассмотрел для того, что вы пытаетесь исследовать.
uptime
выводе)?