Я пишу сценарий, который записывает память и использование процессора в файл журнала, каждый час на cronjob. Файл журнала будет выглядеть примерно так:
"/n ==== Загрузка ЦП ядром ===="
Core0: 59,05% использовано
Core1: 57,68% использовано
"/n ==== Использование ОЗУ / ЦП процессом ===="
PID | ОЗУ используется (КБ) | % Процессора используется | COMM | USER
01 | 00003352 | 0,15% | / sbin / launchd | корень
11 | 00009220 | 0,65% | / usr / libexec / Использование | корень
12 | 00005504 | 7,81% | / usr / libexec / kex | корень
Скорее всего, он будет использовать одну команду для использования ЦП ядром и другую команду для использования ОЗУ / ЦП процессом, но я мог бы использовать одну команду для обеих или более двух команд всего.
Следующие команды показывают некоторые или все необходимые мне данные, но, к сожалению, они не являются решениями:
top
нет команды-b
в OS X, в отличие от Linux. Это означает, что он автоматически обновляется и, следовательно, не подходит для записи в файл журнала. Команда для получения использования% на процессор / ядро?htop
- интерактивная программа, не подходящая для записи в файл журнала. И в любом случае он показывает загрузку процессора ядром в виде гистограммы ASCII. Команда для получения использования% на процессор / ядро?ps
может сильно недооценивать использование памяти, например, когда страницы совместно используются или когда несколько приложений используют одни и те же динамически связанные библиотеки. В противном случае я бы использовалps -eo "pid rss pmem pcpu comm user"
.mpstat
не на OS X и не доступен с homebrew.
Допустимо, чтобы мой пользователь устанавливал homebrew из командной строки, но сборка из исходного кода и добавление команд в bash вручную - это не так.
Кроме того, все время должно быть сделано в cronjob, поэтому я не могу использовать команды автообновления и убивать их после первого цикла.
Спасибо за помощь. :)