簡體   English   中英

osx:如何找到磁盤I / O緩存的大小(例如,寫入緩存)

[英]osx: how do I find the size of the disk i/o cache (write cache, for example)

我正在尋求優化磁盤IO,並四處尋找磁盤高速緩存的大小。 system_profiler沒有告訴我,我還能去哪里?

編輯:我的程序正在處理整個卷:我正在做一次安全擦除,所以我遍歷卷上的所有塊,讀取,隨機化數據,寫入...如果我每個IO操作讀取/寫入4k塊整個作業的速度明顯快於每個操作的r / wa單個程序段。 所以我的問題源於我的搜索,以找到理想的ar / w操作大小(在性能方面是理想的:速度)。 請不要指出,對於擦除程序,我不需要讀取操作,只需假設我需要。 謝謝。

Mac OS X使用統一緩沖區緩存。 這意味着在內核中,VM對象和文件在某種程度上是相同的,並且可緩存的可用內存大小完全取決於系統其余部分中的VM壓力。 這也意味着讀和寫緩存是統一的,如果將讀緩存中的項目寫入其中,只是被標記為臟,然后在提交更改時將其寫入磁盤。

因此,磁盤緩存可能很小,也可能只有千兆字節,並且會隨着使用系統而動態變化。 因此,嘗試確定緩存大小並基於緩存進行優化是一場失敗的斗爭。 您最好查看通知緩存如何更好操作的事情,例如檢查基礎設備的最佳IO大小,或者識別不應該緩存的數據並使用F_NOCACHE。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM