Path: sranha!katsu From: katsu@sra.co.jp (WATANABE Katsuhiro) Message-ID: Date: 27 May 91 08:09:50 Organization: Software Research Associates, Inc.,Japan In-reply-to: nisimura@sra.co.jp's message of 23 May 91 05:01:43 GMT Newsgroups: sra.os.unix Subject: Re: File system fragmentation Distribution: sra References: <1480@sranha.sra.co.jp> 記事 <1480@sranha.sra.co.jp> で nisimura@sra.co.jp (Tohru Nisimura) さんいはく > !  というのは、カーネルが optimization preference を動的に変化させて > ! しまうことがしばしば起きる(と私は思っている)からです。 > でさ、それで本当に『tunefs が無駄な理由』になるの?  いくら tunefs -o space しても、ちょっとしたことでカーネルが 普通の FS_OPTTIME(割り当て時間の最小化)に戻してしまいますよね。 FS_OPTSPACE の状態をしばらく持続して、十分詰め込まれるようにするのは とても大変だろうという主張です。  FS_OPTSPACE から FS_OPTTIME(またはその逆)に変化するのは、fragments を 含むようなファイルの大きさが増大して、そのファイルの fragments が、 現在詰められているブロック内に収まらなくなり、fragments の再割り当てが 起きてしまう時です。  (より正確には、この再割り当て1回分だけは FS_OPTSPACE のまま 割り当てをし、次回以降が FS_OPTTIME になる実装になっているようです。)  よって、FS_OPTSPACE を維持しようとするなら、ファイルへの追加書き込みは もちろん、ディレクトリの大きさも増大させないように新しくファイルを 作らないようにせねばなりません。これは普通無理でしょう。  例えば newfs -o space; restore のような一見静かに見える操作でさえ、 restore の途中で FS_OPTSPACE から FS_OPTTIME に変わってしまうことは 十分あり得ますよね。 > カーネル読んで解説してよ (わかりやく手短かにね)。  いいつけに従ってカーネルを読んでみたら、minfree が 5% 未満の時は FS_OPTSPACE から FS_OPTTIME に変化しないことがわかりました。とすると、 newfs -m 0 -o space; ¥ restore あまり変化しない /bin みたいなやつ; ¥ tunefs -m 10 のような場合なら、(restore された部分はいじらない限りずっと 詰め込まれたままなので)fragments 減少には少し役立つかもしれません。 -- ----____----____ 渡邊克宏@ソフトウェア工学研究所