osx: как узнать размер дискового кеша ввода / вывода (например, кеш записи) - PullRequest
1 голос
/ 28 августа 2009

Я пытаюсь оптимизировать дисковый ввод-вывод и пытаюсь выяснить, каков размер дискового кэша. system_profiler не говорит мне, где еще я могу посмотреть?

edit: моя программа обрабатывает целые тома: я делаю безопасную очистку, поэтому я перебираю все блоки на томе, читая, рандомизируя данные, записывая ... если я читаю / пишу блоки 4k за операцию ввода-вывода вся работа выполняется значительно быстрее, чем р / ва одного блока за операцию. поэтому мой вопрос проистекает из моего поиска, чтобы найти идеальный размер ч / б операции (идеал с точки зрения производительности: скорость). пожалуйста, не указывайте, что для wipe-программы мне не нужна операция чтения, просто предположите, что я делаю. ТНХ.

1 Ответ

7 голосов
/ 28 августа 2009

Mac OS X использует унифицированный буферный кэш. Это означает, что в ядре объекты и файлы виртуальной машины находятся на некотором уровне, то же самое, и размер доступной памяти для кэширования полностью зависит от нагрузки на виртуальную машину в остальной части системы. Это также означает, что кэширование чтения и записи унифицировано, если элемент в кэше чтения записывается в него, он просто помечается как грязный, а затем записывается на диск при внесении изменений.

Таким образом, кэш-память на диске может быть очень маленькой или гигабайтной и динамически изменяться по мере использования системы. Из-за этого попытка определить размер кэша и оптимизировать его на основе является проигрышной борьбой. Вам гораздо лучше смотреть на вещи, которые сообщают кешу, как лучше работать, например, проверять оптимальный размер ввода-вывода базового устройства или определять данные, которые не следует кэшировать, и использовать F_NOCACHE.

...