Linux ext3 ディレクトリ操作最適化
先日のテスト結果を踏まえてext3にてこ入れ。
2.6カーネルが必要という制約はあるけど、今時2.4カーネルのRHEL3系入れてるのは
商用アプリの制約程度なので、それ以外の箇所は大して障害にはならないはず。
最初から有効にする場合は以下。
# mkfs.ext3 -O dir_index /dev/xxx
後から有効にする場合は以下、umountした状態でやる必要がある。
通常e2fsckは一瞬で終わるが、ベンチマークしたところ既にファイルが
あるディレクトリについては性能向上が見込めなかった。変換処理が
スキップされていると推測されるため-fにて強制的にチェックを掛ける。
3A: Optimizing directories がインデックスの変換処理と推測。
有効になっているかはdumpe2fsやtune2fs -lにて確認できるが、既存の領域に
e2fsck無しでmountした場合は表示上dir_indexになっていても古いインデックスが
混在してる様なので注意。
# tune2fs -O dir_index /dev/xxx # e2fsck -f -D /dev/xxx Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 3A: Optimizing directories Pass 4: Checking reference counts Pass 5: Checking group summary information |<<