ext3 とか ext4 のチューニングがわからない

Linuxext3 とか ext4 とかのファイルシステムのチューニング、チューニングというか処理すべき項目を減らして速度を出しましょう的なものが多く見られる。

というわけで真似してみた。

マウント時のオプションで noatime を付ける。これは効果があった。

ext3 とか ext4 では、ファイルやディレクトリ読み込み時にそのオブジェクトに対する最終アクセス日が記録される。すなわち、読み込みが発生するときに最初にチョロッと書き込みも発生してる。このコストはでかい。

そんな情報はいらないという場合この機能を殺せる。これがマウントオプションの noatime 。

noatime のありなしで bonnie++ で計測してみたらランダムシークがほんのり速くなった。1.3倍くらい。

ほかに、ジャーナルファイルシステムのジャーナル書き込みタイミングについての設定として data=orderd を data=writeback にすると速度アップするらしい。もちろん速度を上げた代償はある。

標準の data=journal だと、データ本体を書き終わってからメタデータを更新する。だからファイルシステムの管理情報は信用できる状態となる。

data=writeback だととりあえずちゃっちゃとメタデータ書き込みつつ並行してデータ本体も書く。書き込み中にクラッシュしたら、メタデータの指す先にデータ本体が無いかもしれないそれはゴミかもしれないというリスクがある。

ウチのストレージは強ぇから data=writeback で速度命で行くぜ!という選択肢もとれる。

まずは試してみよう。と思ってやってみたけど、しかしこれはマウントオプション data=writeback を付けるだけじゃダメなのか?

とりあえずマウントオプションとして data=writeback の有り無しだけでベンチを比較してみたけど何も変化が無かった。

tune2fs (tune4fs) -o journal_data_writeback /dev/~~ とかしないと有効にならんのかね。