Назад | Перейти на главную страницу

Как мне регистрировать использование ЦП для каждого процесса?

У меня есть коробка на Линоде, которая ведет себя странно. Время от времени ввод-вывод ЦП и диска будет увеличиваться до 100%, и сервер перестает отвечать, и его необходимо загрузить. Я хотел бы лучше разобраться в том, что происходит, но я не знаю, как определить, кто отвечает за весь этот процессор и ввод-вывод. Я использую Gentoo 2.6.18.

Вы можете попробовать сделать что-то вроде этого:

while true; do ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10 >> logfile.txt; printf "\n" >> logfile.txt; sleep 3; done

Это покажет вам первую десятку процессов с точки зрения использования ЦП. Вы можете изменить количество отображаемых процессов, заменив 10 в «head -10» на другое число, а также частоту обновления, изменив 3 в «sleep 3» или полностью исключив часть «sleep 3».

Проверьте наверху, он будет записывать двоичный журнал практически всего, что вы, возможно, захотите, а затем вы можете использовать верхнюю часть, например gui, для просмотра временных отрезков дня (по умолчанию данные принимаются каждые 5 минут). http://www.atcomputing.nl/Tools/atop/

я так думаю Мунин это один из полезных инструментов мониторинга, который поможет вам получить некоторую информацию о деятельности вашего бокса. Кроме того, есть инструмент командной строки, например сар, iostat, ps, top для такого использования.

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

Если вы хотите, чтобы эта информация записывалась для потомков (или для выставления счетов, или для любого другого использования, которое у вас также может быть), вам нужен учет процессов.

Вот HOWTO, который я нашел, но я буду честен - прошло десять лет с тех пор, как я использовал учет процессов.

http://tldp.org/HOWTO/Process-Accounting/

Более удобный подход к решению Shawn для мониторинга почти в реальном времени:

while true; do clear; ps -eo pcpu,pmem,pid,user,args --sort=-pcpu c|head -20; sleep 1; done

Это обеспечит статическое представление 20 основных процессов, которые будут обновляться каждые 1 секунду. Параметр «c» в команде ps напечатает имя исполняемого файла процесса, а не всю команду args. Вы можете опустить эту опцию, если вместо этого вам нужна вся информация о команде. Также добавлен столбец% использования памяти.

Разве в Gentoo нет команды "top"?

machine:~/# top

должен предоставить вам статистику работы программ, вызывающих наибольшую нагрузку.