Мне нужно отслеживать использование ЦП данным процессом и каждым из его потоков.
Для каждого из них я хочу иметь:
Я нашел несколько ссылок на sysstat / sar, collectd, munin, naggios, но я не уверен, есть ли у них те функции, которые мне нужны.
Система - Ubuntu Hardy.
Ой .. это настоящая задача.
Такие программы, как Munin, cacti или zabbix, вероятно, будут наиболее подходящими и легко охватят 1-е и 3-е точки. Я подозреваю, что Мунин, возможно, самый легкий из трех по этим пунктам. 2-й и 4-й немного сложнее. Я не уверен в какой-либо системе мониторинга, которая могла бы предоставить вам общее время процессора за период. Обычно сбор системных метрик сосредоточен на идее «Что идет не так», а не на системном учете. Надеюсь, у кого-то есть предложение.
В качестве отправной точки для пункта 4 вам необходимо включить функции учета процессов, которые некоторое время были неотъемлемой частью Linux. Здесь есть хорошая деталь: http://shibuvarkala.blogspot.com/2009/04/howto-enable-process-accounting-in.html это поможет вам начать с включения учета процессов и чтения возвращаемой информации.
Одна из причин для предложения Munin заключается в том, что писать плагины для него относительно тривиально, и я подозреваю, что вам это понадобится для того, чего вы пытаетесь достичь.
Хотел бы я быть более полезным.
Вот плагин, который может отслеживать процессы по отдельности. https://redmine.koumbit.net/projects/munin-contrib/repository/revisions/256709738d6a15b80715d91de4b7af55f1e3905e/entry/plugins/processes/multicpu