FacebookのHaystackに関するこの論文によると、
「NASアプライアンスがディレクトリメタデータを管理する方法が原因で、ディレクトリのブロックマップが大きすぎてアプライアンスで効果的にキャッシュできないため、ディレクトリに数千のファイルを配置することは非常に非効率でした。その結果、10以上のディスク操作が発生して、単一のイメージ。ディレクトリサイズをディレクトリあたり数百のイメージに減らした後でも、結果のシステムでは、通常、イメージをフェッチするために3つのディスク操作が発生します。ファイルの内容を読む。」
私はファイルシステムディレクトリのメタデータとiノードが常にOSによってRAMにキャッシュされ、ファイルの読み取りには通常1つのディスクIOしか必要としないと想定していました。
この論文で概説されている「複数のディスクIOが単一のファイルを読み取る」という問題はNASアプライアンスに固有のものですか、それともLinuxにも同じ問題がありますか?
イメージを提供するためにLinuxサーバーを実行する予定です。何らかの方法でディスクIOの数を最小限に抑えることができます。理想的には、OSがすべてのディレクトリとiノードデータをRAMにキャッシュし、各ファイルの読み取りに必要なディスクIOは1つだけであることを確認します。