ベアブロックデバイス用のOSレベルのキャッシュはありますか?では、どのように迂回できますか?

ベアブロックデバイス用のOSレベルのキャッシュはありますか?では、どのように迂回できますか?

ブロックデバイス(たとえば/dev/sda1)に直接読み書きする場合、LinuxにOSレベルのキャッシュが含まれますか?では、どのように迂回できますか?O_DIRECT十分開いていますか?

私は私が持っているSMR(Shingled Magnetic Recording)ドライブの動作を特徴付けるための簡単なベンチマークスクリプトを書いています。したがって、ドライブレベルのキャッシュや並べ替え、つまりOSが実行する操作をバイパスしたくありません。

関連用語を検索すると、この特定の問題を解決できない多くの結果が出ました。しかし、SolarisとFreeBSDの両方がディスクブロックデバイスとキャラクタデバイスを持ち、ブロックデバイスがバッファリングされることを知りました。私のLinuxでは、ディスク上のブロックデバイスのみが表示されます。

ベストアンサー1

ブロックデバイス(/dev/sda1など)を直接読み書きする場合、LinuxにOSレベルのキャッシュが含まれますか?

Linuxの場合はそうです。もちろんそうです。

では、どのように迂回しますか? O_DIRECTで十分開くことができますか?

これは確かにLinuxの場合です。

私は他のUNIXについては何も知りませんが、ほとんどがここにも当てはまると思います。

おすすめ記事