Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在寻找优化我的磁盘 IO,并正在四处寻找磁盘缓存大小。system_profiler 没有告诉我,我还能看哪里?
编辑:我的程序正在处理整个卷:我正在进行安全擦除,所以我循环遍历卷上的所有块,读取,随机化数据,写入......如果我每个 IO 操作读/写 4k 个块整个作业比每次操作的 r/wa 单个块快得多。所以我的问题源于我寻找 ar/w 操作的理想大小(就性能而言是理想的:速度)。请不要指出对于擦除程序我不需要读取操作,只是假设我需要。谢谢。
Mac OS X 使用统一缓冲区高速缓存。这意味着在内核 VM 对象和文件中它们在某种程度上是相同的,并且用于缓存的可用内存的大小完全取决于系统其余部分的 VM 压力。这也意味着读写缓存是统一的,如果读取缓存中的一个项目被写入它只是被标记为脏,然后在提交更改时写入磁盘。
所以磁盘缓存可能非常小或千兆字节,并且随着系统的使用而动态变化。因此,试图确定缓存大小并基于它进行优化是一场失败的战斗。你最好看看通知缓存如何更好地运行的事情,比如检查底层设备的最佳 IO 大小,或者识别不应该缓存的数据并使用 F_NOCACHE。