Запись использования ЦП по ядрам и использования ОЗУ/ЦП по процессам в файл журнала в OS X

Запись использования ЦП по ядрам и использования ОЗУ/ЦП по процессам в файл журнала в OS X

Я пишу скрипт, который записывает память и использование ЦП в файл журнала каждый час в 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, поэтому я не могу использовать команды автоматического обновления и завершать их после первого цикла.

Спасибо за помощь. :)

Связанный контент