質問: ext3ファイルシステムを組み込みLinuxで使用しています。 ジャーナリングモードはorderdモードを使用。 突然の電源遮断でファイルがディスク(CFを利用)に残らない現象を確認しており、Linuxの仕組みを調査しています。 私の認識が合っているのかご指摘をお願いします。 1. C言語でfopen->fwrite->fcloseの手順でファイルに書き込む(この時はまだメモリ上) 2. Linuxがext3に書き込む(30秒周期、この時はまだext3の一時ファイル?) 3. ext3がディスクにコミット(5秒周期、これでやっとディスクに残る) 2はLinuxのシステムコールsyncを呼ぶことで即座に行うことが可能。 しかし3があるので2が終わったあとでも書き込まれないこともある。 このような認識です。 また、2や3の周期は調整可能でしょうか?可能であれば設定方法も教えて頂けると幸いです。 よろしくお願いします。
回答: 知りたい情報がmetropolis様のコメントで得られました。 ### ext3がディスクにコミット について man の `ext4(5)` にある `Mount options for ext3` には `commit=nrsec: Start a journal commit every nrsec seconds. The default value is 5 seconds.` と書かれています。 ### Linuxがext3に書き込む について `/proc/sys/vm/dirty_expire_centisecs` になります(`pdflush` スレッドの実行間隔)。今回の件では `vm.dirty_ratio` と `vm.dirty_background_ratio` を調整する(値を下げる)方が良いかもしれません。