Сегодня приведу полезный скрипт, показывающий, к каким файлам шли частые обращения за 10-ти секундный интервал. Скрипт работает непрерывно до его прерывания. Применение – можно увидеть, почему вдруг увеличилась нагрузка на систему из-за дисковой активности.
Скрипт:
$ cat 02_openfiles.d #!/usr/sbin/dtrace -s io:::start { @[args[2]->fi_pathname] = count(); } tick-10s { trunc(@, 10); printa(@); trunc(@, 0); }
Выставить права на запуск:
$ chmod +x 02_openfiles.d
Запуск:
$ sudo ./02_openfiles.d
Второй вариант запуска – в одну строку:
$ sudo dtrace -n 'io:::start {@[args[2]->fi_pathname] = count();} tick-10s {trunc(@, 10); printa(@); trunc(@, 0);}'
Пример работы:
0 129269 :tick-10s ??/Logs/FileSyncAgent.log 1 ??/Russian.lproj/Dictionary.dat 1 ??/DiagnosticMessages/StoreData 3 ??/DiagnosticMessages/2010.11.30.asl 6 ??/com.apple.Safari/Cache.db-journal 8 ??/com.apple.Safari/Cache.db 51 0 129269 :tick-10s ??/bands/114 1 ??/bands/ef 2 ??/Cookies/Cookies.plist_tmp_67927_0.dat 3 ??/bands/115 3 ??/bands/a0 3 ??/bands/0 4 ??/bands/59 5 ??/com.apple.Safari/Cache.db-journal 6 ??/com.apple.Safari/Cache.db 12 ??/unknown (NULL v_parent)/unknown (NULL v_name) 16
По этим примерам можно сказать, что Safari активно пишет в кеш, и система синхронизирует iDisk.
Почему iDisk? /bands/114 указывает на Sparse Bundle Image, Time Machine вне подозрения (TimeCapsule далеко), а поиск find’ом показал каталог ctrld_iDisk.sparsebundle:
$ sudo find / -name 114 /Users/ctrld/Library/FileSync/0025bcdcddae/ctrld_iDisk.sparsebundle/bands/114
Указанный пример очень прост, есть гораздо более впечатляющие примеры. Хотите узнать больше? Смотрите