Я ищу способ диагностировать проблемы, такие как смерть swap, когда процесс balooning памяти заполняет swap и убивает всю машину (например, apache).
Я уже использую cacti и могу установить nagios (хотя предпочел бы этого не делать) или munin, но, насколько я могу судить, они не могут регистрировать использование отдельных программ - только общий статус.
Я знаю, что могу написать скрипт, который будет делать >> в какой-нибудь файл каждые 30 секунд, но я хотел бы узнать, существует ли уже готовое решение.
Опять же, в идеале он должен:
Имена процессов не известны и не должны быть известны заранее - идея в том, чтобы просто позволить ему мониторить и затем посмотреть на главных нарушителей.
Моя система - Linux (OpenSUSE).
Это Вы хотите просто главных преступников, рассматривают выполнение top
с относительно длинным интервалом (60 секунд плюс) в пакетном режиме. Вам, возможно, понадобится больше чем один top
выполнение для получения главных преступников на нескольких ресурсах. Я настроил системы для выполнения top
для нескольких циклов, когда ресурс был по используемому.
Рассмотрите выполнение sar
в пакетном режиме для получения использования ресурса. Я понимаю, что это - базирующийся сервер, но это полезный для определения времен, когда проблемы происходят.
Выполненный munin
и включите уведомления. Это может дать Вам шанс войти и следить за потерей работоспособности сервера. Вы можете исправлять проблему, прежде чем она понизится.
Для утечек памяти устойчивое увеличение использования подкачки указывает на проблему. Я когда-то наблюдал, что сервер медленно перестал работать в течение дней. Сервис задач был программой, контролирующей другие процессы для утечек памяти. Системный администратор продолжал настаивать, что увеличивающееся использование подкачки не было проблемой, до тех пор, пока сервер не прекратил отвечать.
Можно найти это cfengine
обнаружение аномалии может использоваться для инициирования сценария для получения состояния системы, когда вещи идут не так, как надо. Можно хотеть большую информацию помимо просто процессов с помощью большинство ресурсов. Для внезапного притока использования можно хотеть список сетевых соединений (адресом не, называют). Использование памяти также полезно.
sysstat сделан в значительной степени точно для Вашего вида цели.
Я использовал на прежде:
http://freshmeat.net/projects/atop/
"На полноэкранный монитор производительности ASCII, который способен к созданию отчетов о действии всех процессов (даже если процессы закончились во время интервала), ежедневно журналирование системы, и обработайте действие для долгосрочного анализа, выделения перегруженных системных ресурсов при помощи цветов, и т.д. Равномерно, это показывает действие системного уровня, связанное с ЦП, памятью, подкачкой, дисками и сетевыми уровнями, и для каждого активного процесса это показывает загрузку ЦП, рост памяти, приоритет, имя пользователя, состояние и код выхода".
Centreon сверху Nagios, Nagios вместе с NRPE. Можно затем записать пользовательские сценарии для создания отчетов о данных в ЛЮБОМ формате, которого Вы желаете к NRPE. Nagios затем опрашивает данные из удаленных серверов с NRPE, и Centreon делает симпатичный график и добавляет тонну пользовательской гибкости. Мы используем его по http://beyondhosting.net, у меня уже есть шаблон VZ Container с установкой centreon+nagios, если Вы хотите это.
Графики centreon создают hostthenpost.org/tyler/2010-07-23_1719.png
nmon является большим инструментом, который делает то, что Вы ищете. Разработанный для AIX и Linux. Производит тонну подробного результата и легкий поместить в отчеты. При поиске с помощью Google его существует Wiki IBM, которая имеет набор документации и дополнительных утилит для парсинга данных.
Плотность сервера делает точно, что Вы описываете.
Я использую его на одном из наших рабочих серверов, и очень довольно этим. Это - главная функция, способность просмотреть диаграммы, нажать на пик и видеть сервер ЦП/потребление памяти в то текущее время, включая все рабочие процессы. Они звонят, это создает снимки.
Это постоянно улучшается. Одной из последних функций является обнаружение аномалии, которое позволяет Вам легко обнаруживать аномалии. Можно также установить различный tresholds
http://studyhat.blogspot.com/2010/08/user-activity-view-processes-display.html
имейте взгляд выше, связывают маленький код, который выделяет Вас помещенный CPU памяти и т.д.
Ответы предложили, когда я задал подобный вопрос:
Munin является самым легким способом получить графики времени работы с минимальным усилием в установке и настройке. Я также использую на для совокупного использования CPU некоторым процессом, но это не то, что Вы попросили.
Я использую collectd для записи системной нагрузки среди многих других параметров. Это хранит данные в хранилищах RRD, которые могут быть изображены в виде графика и иначе проанализировали использование многих доступных инструментов и сценариев. Я использую измененную версию этого сценария для моего построения графика (демонстрационный вывод).
Collectd имеет плагины для контроля большого количества материала (все обычно просившее и несколько вещей на вершине), и создание Вашего собственного не должно быть трудным при необходимости в чем-то специализированном поэтому делает для очень гибкого инструмента. Конфигурирование графиков в rrd.cgi является очень ручным процессом, хотя не трудный, хотя Вы могли бы хорошо найти более удобный инструмент для работы с файлами RRD сохраняемым collectd.
Munin сделает все из того, в чем Вы нуждаетесь из поля, не требуя Nagios или любого другого инструмента. Существуют RPMs доступный для OpenSUSE.
Возможно, старый добрый OProfile делает то, в чем Вы нуждаетесь? Это - основанный на ядре профилировщик системного уровня только с маленькими (несколькими процентами) наверху.
Затем существует превосходный сценарий Perl, PSMon, который позволяет Вам настраивать весь вид пределов ЦП/памяти. Если они будут превышены, то psmon зарегистрирует ошибку и/или уничтожит незаконный процесс.
Последний не представил бы профильных отчетов Вам, но если это решает уничтожить тот же процесс много раз, Вы, вероятно, нашли противного ублюдка, которого Вы искали.:-)