注意: 以下の記事は完全に間違っています。ext3はflushメソッドがNULLなので、closeのときにfsyncされないよん。ごめんなさいm(_ _)m

http://d.hatena.ne.jp/naoya/20070521/1179754203

のコメント欄

naoya 『read はキャッシュに載ってれば常にメモリアクセスのみで済むけど write はページに dirty フラグを立ててプロセスに制御が戻ったあと、pdflush がどこかのタイミングでディスクに書き出しして必ず物理的にディスクにアクセスしますよね。

その時の排他処理周りなんじゃないかなあと思いますが、その辺が実ははっきりしないんですよね。だいぶ追ってみてはみたんですが。』 (2007/05/22 00:24)

naoya 『普通に考えれば write はディスク更新があるから云々というのは想像がつくけど、じゃあ具体的にページをディスクに書き出す処理がたくさん発生した場合に、OS がどこの処理を行ったときに write してるユーザープロセスに影響を与えてしまうのかというのが正確に説明できない。』 (2007/05/22 00:26)



Linuxのcloseは暗にfsyncするから、ここであげられている

100000回繰り返し
open
8K write
close

というパターンだとfsyncコストが見えちゃうので良くないんじゃないかな

naoya氏がなんで突然カーネルの世界にはまりだしたのか知らないけど、まずはメデタイ\(^o^)/