ファイルシステムとパフォーマンス
数ヶ月前、うちのオーストラリア人エンジニアが、ファイルシステム毎のMySQLのベンチをInnoDB,MyIsamで取ってみたという話をしてきて、その結果を凄く意外に思ったことがあった。
数十万オーダーのベンチで、ext2が圧倒的に速かったらしい。そのあとは、reiserfs,ext3,xfs,jfsとかそんな感じの順番だったっけ?ext2が早いっていうことが意外すぎてあまり覚えていない。
それだけ、ジャーナル取るコストが高いってことなのかな。
CRUD特性やDB構成にも寄るんだろうけど、うちみたいなIO負荷が高くてmaster-slaveな構成のDBで廻しているWebシステムなんかにはext2で十分じゃないのかという話になって、該当するものに関しては、ext2にした。
そもそも、master-slave構成の時点で、ジャーナリングは殆ど必要ないだろうとおもう。ケアする必要があるのは、一度にマスターとスレイブ群がまとめて落ちるような状況のみなのかな。それが起こりうるのは、電源供給周りぐらいなんだろうけど、IDC使っている場合だと殆ど気にする必要もないので、ある程度割り切れる部分だと思う。
そういう話を考えていると、スケールアウトに伴うファイルシステムだったり、カーネルチューニングだったりという話はもっと表に出てきても良いのかなとも思うけど、そういう話は個々で試行錯誤しながらやっているんだろうし、集約する場もないからなのかなとか思ったりして、Shibuya.serverとかShibuya.performanceとかあれば良いのかとか考えたりする今日このごろ。