
ブロックデバイス(たとえば/dev/sda1
)に直接読み書きする場合、LinuxにOSレベルのキャッシュが含まれますか?では、どのように迂回できますか?O_DIRECT
十分開いていますか?
私は私が持っているSMR(Shingled Magnetic Recording)ドライブの動作を特徴付けるための簡単なベンチマークスクリプトを書いています。したがって、ドライブレベルのキャッシュや並べ替え、つまりOSが実行する操作をバイパスしたくありません。
関連用語を検索すると、この特定の問題を解決できない多くの結果が出ました。しかし、SolarisとFreeBSDの両方がディスクブロックデバイスとキャラクタデバイスを持ち、ブロックデバイスがバッファリングされることを知りました。私のLinuxでは、ディスク上のブロックデバイスのみが表示されます。
答え1
ブロックデバイス(/dev/sda1など)を直接読み書きする場合、LinuxにOSレベルのキャッシュが含まれますか?
Linuxの場合はそうです。もちろんそうです。
では、どのように迂回しますか? O_DIRECTで十分開くことができますか?
これは確かにLinuxの場合です。
私は他のUNIXについては何も知りませんが、ほとんどがここにも当てはまると思います。