
Я пишу скрипт, который записывает память и использование ЦП в файл журнала каждый час в cronjob. Файл журнала будет выглядеть примерно так:
"/n====Использование ЦП по ядрам===="
Core0: 59.05% использовано
Core1: 57,68% использовано
"/n====Использование ОЗУ/ЦП процессом===="
PID | Используемая ОЗУ (КБ) | %Используемый ЦП | COMM | USER
01 | 00003352 | 0,15% | /sbin/launchd | корень
11 | 00009220 | 0,65% | /usr/libexec/Use | корень
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, поэтому я не могу использовать команды автоматического обновления и завершать их после первого цикла.
Спасибо за помощь. :)