は、のは、私が上のファイルへのデータの1ギガバイトを書きたいとしましょうwrite(2)
システムコールを使用してext3
Linuxファイルシステムを言うと、これは非常に忙しい環境(多くの同様のI/Oの中で起こりますconcurently)。区間内の最適なバッファサイズはどのようなものです、と言う、[4 kB, 4 MB]
は最適なバッファサイズ(2)
- が
O_DIRECT
オープンフラグ、または O_DIRECT
を使用してを使用しない場合があることを行うには?
「自分で確認してください」という回答はしないでください。「ファイルシステム」の人から回答を得たいと思います。
自分自身をベンチマークするようにしてください。私はサイズが少なくとも[16kb、1MB]の範囲では大したことではないと信じています...そして、サイズには非常に敏感ではないと私は考えています...(実際のボトルネックはディスクハードウェアです) –
ファイルシステムのブロックサイズを得るには、ファイル(例えば 'stat("。 ")')上で 'stat'を呼び出します。私は、結果が良いバッファサイズになると思うだろう。 –
@BasileStarynkevitch:1通話あたり数キロバイトを読んでみてください。大きなブロックを読むときのパフォーマンスの向上は巨大です。しかし、もう一度、あなたが与えた範囲ではおそらく正しいでしょう。 – ThiefMaster