Состоялся первый выпуск проекта times2log, предназначенного для мониторинга и логирования процессорного времени, используемого выбранным процессом. Код открыт под лицензией CC0 (общественное достояние). times2log представляет из себя Python скрипт, периодически проверяющий /proc/[PID]/stat указанного процесса для учета utime и stime. times2log выводит (и опционально логирует в указанный файл) пользовательское и системное время процесса за указанный интервал времени (2 секунды по умолчанию). Перед началом мониторинга выполняется mlockall() для бесперебойной работы процесса в условиях нехватки памяти. Пример вывода: $ times2log -p `pidof kswapd0` Process memory locked with MCL_CURRENT | MCL_FUTURE | MCL_ONFAULT PID: 93, Name: kswapd0, interval: 2s, SC_CLK_TCK: 100 ============================================================ user | system | total | interval -------------- | -------------- | --------------- | -------- 0 t, 0.0% | 0 t, 0.0% | 0 t, 0.0% | 2.0s 0 t, 0.0% | 0 t, 0.0% | 0 t, 0.0% | 2.0s 0 t, 0.0% | 0 t, 0.0% | 0 t, 0.0% | 2.0s 0 t, 0.0% | 0 t, 0.0% | 0 t, 0.0% | 2.0s 0 t, 0.0% | 161 t, 80.4% | 161 t, 80.4% | 2.0s 0 t, 0.0% | 199 t, 99.4% | 199 t, 99.4% | 2.0s 0 t, 0.0% | 197 t, 98.4% | 197 t, 98.4% | 2.0s 0 t, 0.0% | 198 t, 98.9% | 198 t, 98.9% | 2.0s 0 t, 0.0% | 150 t, 74.9% | 150 t, 74.9% | 2.0s 0 t, 0.0% | 157 t, 78.4% | 157 t, 78.4% | 2.0s 0 t, 0.0% | 197 t, 98.4% | 197 t, 98.4% | 2.0s 0 t, 0.0% | 29 t, 14.5% | 29 t, 14.5% | 2.0s 0 t, 0.0% | 0 t, 0.0% | 0 t, 0.0% | 2.0s 0 t, 0.0% | 0 t, 0.0% | 0 t, 0.0% | 2.0s 0 t, 0.0% | 0 t, 0.0% | 0 t, 0.0% | 2.0s 0 t, 0.0% | 0 t, 0.0% | 0 t, 0.0% | 2.0s ^C-- Times for the last 32.2s: user: 0 ticks (0.0s), avg: 0.0% system: 1288 ticks (12.9s), avg: 40.0% total: 1288 ticks (12.9s), avg: 40.0% Учет времени ведется в тиках и в процентах от пройденного интервала времени. При завершении работы (после получения сигнала SIGINT, SIGTERM, SIGQUIT или SIGHUP) times2log выводит итоговую статистику за все время мониторинга.
Ссылка:
https://www.linux.org.ru/news/opensource/16699699