2011年1月12日水曜日

性能調査は続く。。。

SSD向けのチューニングは一段落ついたので、今回は別の話題です。

チーム内部では5.5版のXtraDBが色々ベンチマークされていて、その中で興味深い事象が発生しました。

ストレージはRAID10。SSDではないです。
書き込みも読み込みも両方のIOが激しくなる条件でベンチマークすると、書き込みが疎かになって modified_age が肥大化して同期flushを伴うチェックポイントが頻繁に発生してスループットが安定しないと言うのです。。。

「そんなのは、XtraDB側の問題じゃなくて OS/ハード の問題だろ!」
とは思ったのですが、読み込みIOのスループットを制限するパッチを作ってみました。modified_ageが大きくなったときに指定された割合で過去の最大スループットをベースに制限します。。。。

なかなか興味深いパッチができたのですが、その前に先方では解決した模様でした。

件の事象は xfs 固有のもので、ext4 では起こらない

と言うのです。
というわけで、とりあえず「xfs を使わない」で解決です。

xfs には何かRDBMS向きではない部分が有るのかも知れません。
世間で行われているベンチマークは単純なものが多く、RDBMSのような各IOに意味があって依存関係があるような条件では成されていないということでしょうか。
やはりベンチマークは自分でやるまで信用できないものですね。気をつけましょう。

RDBMS性能フリークは xfs に気をつけろ。

というわけで、今回は新機能は無し。パッチはとりあえずお蔵入りです。。。

※ディストリビューションは CentOS5.5 です。私のサーバーじゃないので、私の趣味ではありません。xfs が古かったりするのかも。nobarrierは使用してます。そのせいではありません。

※IO read スループット制限パッチは DBインスタンス/VM が1個のサーバーに相乗りの場合は有効かも。要望が有れば復活もあるかも。