[Linux] Ext3 Filesystem のチューニングとか
IBM の#{mes}(#{link})に Ext3 filesystem に関する記事「共通テーマ: アドバンスト・ファイルシステム・インプリメンター・ガイド: 第8回」というものがある。 Linux で Ext3 を使っている人は一読する価値あると思う。また Linuxでどのファイルシステムを利用しようか悩んでいるひとにも参考になるんだろう。16MB の読み込みで ReiserFS の約10倍の速度が出ているというのもチト眉唾なところもあるんだが。
それはさておき、このなかで ダーティーバッファをフラッシュさせるパラメタを/proc/sys/vm/bdflush で設定するというのがあるんだか、このおのおののパラメタは何を意味しているのかということを説明している部分がこの文書の中には見当たらないんで、チト調べてみる。bdflush に関しては Linux の Kernel source の中の Documentation/sysctl/vm.txtに解説があった。bdflush の構造としては以下のようになっているらしい。:
union bdflush_param{
struct {
int nfract; /* Percentage of buffer cache dirty to
activate bdflush */
int ndirty; /* Maximum number of dirty blocks to
write out per wake-cycle */
int nrefill; /* Number of clean buffers to try to
obtain each time we call refill */
int nref_dirt; /* Dirty buffer threshold for activating
bdflush when trying to refill buffers. */
int dummy1; /* unused */
int age_buffer; /* Time for normal buffer to age before
we flush it */
int age_super; /* Time for superblock to age before we
flush it */
int dummy2; /* unused */
int dummy3; /* unused */
} b_un;
unsigned int data[N_PARAM];
} bdf_prm = {{40, 500, 64, 256, 15, 30*HZ, 5*HZ, 1884, 2}};
これを解読というか適当に翻訳というか、それをすると、こんな順番のパラメタを指定するらしいんだ。:
- ダーティなキャッシュをアクティベートさせるパーセント (int nfact = 40)
- wake-cycle あたりのダーティブロックの最大値 (int ndirty = 500)
- バッファを補充するときに、クリーンなバッファとして取得しようとする数 (int nrefill = 64)
- バッファを補充するときに、活性化させるダーティバッファのしきい値 (int nref_dirt = 256)
- 未使用 (int dummy1 = 15)
- 通常のバッファをフラッシュさせるまでの時間 (int age_buffer = 30 * HZ)
- スーパーブロックをフラッシュさせるまでの時間 (int age_super = 5 * HZ)
- 未使用 (int dummy2 = 1884)
- 未使用 (int dummy3 = 2)
んで、時間のパラメタはヘルツで指定するようになっている。ん〜ん、これを理解するのには、チト頭を捻らないとダメだなぁ。ウチの鯖でナニをドゥするかっつーのは おぃおぃ考えるとしよぅと。
コメント
コメントを投稿