6

Я знаю, что могу использовать Activity Monitor (а также множество сторонних приложений) для мониторинга использования оперативной памяти и процессора на моем Mac. Тем не менее, я хочу записывать журнал в течение определенного периода времени, чтобы можно было сравнивать использование процессов без необходимости делать снимки экрана и т.д. Нечто похожее на консоль, вот так:

Process A (5:22 - 5:32)

5:22:01: 2.2% CPU, 5 Threads, 111.1MB Real Mem  
5:22:03: 2.1% CPU, 4 Threads, 90.4MB Real Mem  
...

Как я могу сделать это?

3 ответа3

8

Это может не совсем попасть в цель, но попробуйте это:

sar -o ~/output.sar 10 10 

Это собирает 10 наборов метрик с 10-секундными интервалами. Затем вы можете извлечь полезную информацию из выходного файла (даже когда он все еще работает), например, это даст вам активность диска за интервал, который вы выбрали:

sar -d -f ~/output.sar

Сделайте man sar чтобы узнать, какие есть другие варианты.

Редактировать:

sar не работает с памятью, поэтому это даст вам свободную память в вашей системе с интервалом в десять секунд:

vm_stat 10 | awk 'NR>2 {gsub("K","000");print ($1+$4)/256000}'

Вы можете перенаправить это в файл.

Если вам нужна дополнительная информация, пожалуйста, спросите.

2

Вы можете регистрировать использование процессором и памятью процессов, но не количество потоков, с помощью программы Python Syrupy.

Syrupy - это скрипт Python, который регулярно делает снимки памяти и загрузки ЦП одного или нескольких запущенных процессов, чтобы динамически формировать профиль использования ими системных ресурсов.

Сиропы работают по одному из двух режимов. В первом режиме (по умолчанию) он отслеживает использование ресурсов процессом, являющимся результатом выполнения указанной пользователем команды (которая может быть любой произвольно сложной комбинацией программ и аргументов, которые могут быть вызваны из терминала оболочки). Во втором режиме Syrupy отслеживает использование ресурсов внешними запущенными процессами, которые соответствуют заданным пользователем критериям: номер PID (Process IDentifier) или строка команды, соответствующая шаблону регулярного выражения.

В любом случае мониторинг использования системных ресурсов основан на повторных обращениях к системной команде ps.

Для вашего случая использования, регистрируя каждый запущенный процесс, я думаю, что эта команда будет работать:

syrupy.py --poll-command='.*'
0

Вы можете использовать данные top и pipe в awk или grep для чтения нужной вам информации.

Проверьте это здесь; http://ss64.com/osx/top.html

top - это основной инструмент, на котором строится Activity Monitor.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .