Как мне использовать top (или эквивалентный), чтобы определить, плохо ли ведет себя процесс?

381
Usagi

Есть ли индикаторы того, когда процесс «перешел на темную сторону»?

Я чувствую, что просто использование MEM% и CPU% являются плохими индикаторами для обнаружения таких вещей, как утечки памяти (или другие проблемы, извините за мой ограниченный словарный запас), потому что трудно без достаточных знаний о программе определить, сколько памяти или процессора у программы "следует использовать.

Итак, как мне найти действительно плохие процессы по сравнению с просто дорогими?

0
`перешел на темную сторону` ???? Если вы не укажете, что именно вы подразумеваете под этим, как вы можете ожидать, что `top` поможет вам? MariusMatutiae 7 лет назад 0

2 ответа на вопрос

0
Simon MC. Cheng

Я думаю, что трудно точно знать, сколько ресурсов «должна» использовать программа, но есть некоторые индикаторы, которые вы можете проверить, достаточно ли ресурсов для вашей системы, чтобы обработать программу.

Сначала мы проверяем PID для процесса по (например, имя процесса - dataserver):

ps aux | grep dataserver sybxxx 795 52.9 0.0 1190088 22548 ? S<sl Jun06 38192:51 /sybase/XXX/ASE-16_0/bin/dataserver 

Здесь мы знаем, что идентификатор процесса - 795, поэтому мы используем команду pidstat :

pidstat -h -r -u -p 795 5 Time PID %usr %system %guest %CPU CPU minflt/s majflt/s VSZ RSS %MEM Command 1469520679 795 242.80 5.00 0.00 247.80 24 0.00 0.00 53618888 22548 0.02 dataserver 

Из результатов мы знаем, что процесс использует около 2,4 ядра процессора, в то время как в системе установлено 24 ядра. Кроме того, используемая память в процентах составляет около 0,02% от общего объема установленной памяти.

Помимо такой информации, я думаю, что было бы достаточно провести общую проверку системы, чтобы предотвратить нехватку ресурсов.

Во-первых, чтобы проверить загрузку процессора, вы можете использовать команду sar . Чтобы определить плохую производительность системы, вы должны проверить следующий вывод.

В нормальной ситуации вывод iostat будет примерно таким:

sar 12:00:01 AM CPU %user %nice %system %iowait %steal %idle 12:10:01 AM all 0.70 0.00 0.15 0.01 0.00 99.13 

Значение% idle должно оставаться высоким, в то время как значение% user,% system и% iowait должно быть низким для незанятой системы.

Для проблемы дискового ввода-вывода вы можете проверить результат iostat -x :

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.07 1.58 0.27 1.04 13.72 20.87 26.54 0.01 7.50 3.33 0.43 sdc 4.09 252.47 483.10 5.90 18616.61 2148.57 42.46 5.88 12.03 1.99 97.29 

Это плохой пример, поскольку вы можете видеть, что процент использования устройства SDC стал 97,29%, что указывает на проблему с дисковым вводом / выводом.

Чтобы проверить, достаточно ли у нас памяти для системы, взгляните на использование подкачки:

sar -B 10:30:01 AM pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff 10:40:01 AM 8524.25 47.12 856.03 0.00 263.76 0.00 0.00 0.00 0.00 10:50:01 AM 8391.64 82.94 1116.50 0.08 377.87 0.00 0.00 0.00 0.00 

Как мы видим, количество страниц в секунду для этого сервера очень велико, поэтому мы можем подозревать, что системе не хватает памяти.

0
Eamonn Kenny

Я обычно сначала смотрю на груз. Если 2 из 3 чисел сверху выше 3, то вы движетесь в неправильном направлении. Загрузка более 8 для любого из 3 чисел - серьезная проблема, означающая, что вы запускаете несколько форков одного процесса или ваша машина просто не в состоянии справиться с тем, что вы пытаетесь сделать. Пример: запуск сервера пакетной обработки крутящего момента с большим количеством заданий и слишком малым количеством ядер.

Затем, если один из ваших процессов использует увеличивающееся количество ЦП, это также является плохим признаком проблем с утечками памяти, или это также может быть то, что вы используете компоненты, называемые Chrome / Firefox :) На самом деле Firefox сильно пострадал от использования подключенного плагины, такие как Skype, которые приводят к переполнению в старых версиях.

Другим показателем является большое количество составных процессов одного типа, но не всегда проблема.

И одним из действительно ранних индикаторов проблем является процесс, помеченный как «перестал существовать», поскольку тогда он становится неработоспособным, как и большинство людей, которых я знаю!

Похожие вопросы