Для мониторинга и анализа производительности есть очень мощный полупрограммируемый инструмент под названием dtrace.
dtrace позволяет создавать командную строку или небольшие программы, которые позволят вам следить за системными вызовами.
Он несколько мощный и сложный. и вы можете найти несколько примеров вокруг, включая очень интересную книгу Производительность систем: Предприятие и облако
Со страницы Инструменты DTrace:
DTrace, реализация динамической трассировки, которая доступна в различных ОС (Solaris, Mac OS X, FreeBSD, ...). DTrace помогает устранять неполадки на серверах, предоставляя новые детальные представления о внутренних компонентов приложения и системы, до уровня, который ранее был трудно или невозможно получить доступ. Он предоставляет язык для написания скриптов DTrace, который похож на C и awk и основан на событиях.
# Файлы, открытые процессом: dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }' # Чтение байтов процессом: dtrace -n 'sysinfo:::readch { @bytes[execname] = sum(arg0); }' # Запись байтов процессом: dtrace -n 'sysinfo:::writech { @bytes[execname] = sum(arg0); }' # Распределение размера чтения по процессам: dtrace -n 'sysinfo:::readch { @dist[execname] = quantize(arg0); }' # Запись распределения размеров по процессам: dtrace -n 'sysinfo:::writech { @dist[execname] = quantize(arg0); }'