1

ディスク IO の最適化を検討しており、ディスク キャッシュ サイズを調べようとしています。system_profiler が教えてくれないのですが、他にどこを見ればよいでしょうか?

編集:私のプログラムはボリューム全体を処理しています:私は安全なワイプを行っているので、ボリューム上のすべてのブロックをループし、読み取り、データのランダム化、書き込み...IO操作ごとに4kブロックを読み書きする場合ジョブ全体は、操作ごとに r/wa 単一ブロックよりも大幅に高速です。したがって、私の質問は、ar/w 操作の理想的なサイズ (パフォーマンス: 速度の点で理想的) を見つけるための検索から生じています。ワイププログラムの場合、読み取り操作は必要ないことを指摘しないでください。必要であると仮定してください。どうも。

4

1 に答える 1

7

Mac OS Xは、ユニファイドバッファキャッシュを使用します。つまり、カーネルのVMオブジェクトとファイルは、あるレベルで同じものであり、キャッシュに使用できるメモリのサイズは、システムの他の部分のVMの負荷に完全に依存します。また、読み取りキャッシュと書き込みキャッシュが統合されていることも意味します。読み取りキャッシュ内のアイテムが書き込まれると、ダーティとマークされ、変更がコミットされたときにディスクに書き込まれます。

そのため、ディスクキャッシュは非常に小さい場合やギガバイト大きい場合があり、システムの使用に応じて動的に変化します。このため、キャッシュサイズを決定し、それに基づいて最適化しようとすると、負け戦になります。基盤となるデバイスの最適なIOサイズを確認したり、キャッシュすべきでないデータを特定してF_NOCACHEを使用したりするなど、キャッシュに適切に動作する方法を通知することを検討する方がはるかに優れています。

于 2009-08-28T14:37:28.697 に答える