MySQL 5.1 → 5.5 で高速になったか検証

さくらインターネット MySQL 5.1 から5.5 に引越し1」で準備し、「さくらインターネット MySQL 5.1 から5.5 に引越し2」で実際に移行した。

今回は、準備編で調査した際に見かけた「MySQL 5.5 はMySQL 5.1 より、場合によって「数百%高速」」というのは確かなのかを見てみる。負荷のかかった状態でも高速動作するともあったと記憶しているから、期待は高まる。

スポンサードリンク

また、リソースを計算する際にMySQL やI/O の応答待ちもCGI (さくらインターネットではPHP がCGI として実行されていたはず)のCPU 時間に含まれるはずだから、これらの消費も軽減されるかもしれないという期待もある。

さて、同じような作業を行った2つのサーバーがあり、ともにさくらインターネットのサーバーだ。1つはしばらく前から統計をとっていて、もう1つは最近になって統計を取り始めた。両者の尺度が同一でないため、後者は小さい変化を受けやすいグラフになっている。なお、データの取得には以前作成したプログラムを使って報告されるデータを使っている。

グラフのみかた

グラフは2つのデータを見ている。1つは転送量(赤)で、1つはCPU 時間(青)。長い目で見ると転送量とCPU 負荷はある程度の関係があることがわかる(もちろん構築の内容にもよるだろうが。今回見る2つのサーバーは主にWordPress が動いている)。

Google Analytics による解析でも当然同じようなグラフを描いている。ちなみに、何れのサーバーも週末や連休などはアクセス数が低下するサイトばかり。

サーバー1

1つ目のサーバーは昨年9月ごろからデータを取得していることがわかる。極端に跳ね上がっているのはGoogle による”クローラー・アタック”だ…(こういう時のためにプログラムを作ったのだが余り活用されたくはないものだ)。

その少し後にグラフが大きく凹んでいる部分がある。これが作業によるアクセス断なのかどうかは忘れてしまったが、このあとからMySQL を変更したと記憶している。

大きな変化はないものの、これまでの範囲よりも低くなっていることが確認できる。確実なことは言い切れないが、行った作業とグラフ(青)を見るとMySQL のバージョン変更によるレスポンス改善によって、プログラムの実行時間が軽減され、CPU 使用時間が軽減された可能性がある。

さらに、グラフ(赤)の推移を見ると、転送量が増加していることを表している。つまり、多くのアクセスがあったにも関わらずCPU 時間が軽減されていると読むことができる。

ただし、MySQL のバージョンだけでなく、接続先データベースサーバーそのものが変更になっている点に留意しなければならない。

サーバー2

サーバー2に於いても、サーバー1同様の結果となったことがわかるが、読み取る際に注意すべきは前述したように、サーバー2のグラフは小さな変化を受けやすいこと。

まず、CPU 使用時間を表すグラフ(青)が大きく低下している。このあたりで作業を行ったと記憶しているから、その後もこれまでよりCPU 使用時間が短くなっている。これは応答速度が改善された可能性もある。

また、サーバー1同様に、転送量を表すグラフ(赤)が増加していることから、アクセス数が上がっているにもかかわらず、CPU 使用時間が短くなっている可能性がある。

ただし、MySQL のバージョンだけでなく、接続先データベースサーバーそのものが変更になっている点に留意しなければならない。

注意点

さくらインターネットで割り当てられるサーバーは、ウェブサーバーとデータベースサーバーだが、知る限りCORESERVER のように自由に選択することはできない。ただ、データベースサーバーについては一度全削除することで新たなサーバーが割り当てられたことがあるから、もしかしたら”移動的なこと”を行えるのかもしれない。

また、ウェブサーバーは後になって契約したもののほうが性能が良いらしい。サーバー1とサーバー2を比較すると、サーバー2がサーバー1の転送量の3分の1しかないにもかかわらず、サーバー2と同様のCPU 時間になっている(サーバー2のほうが契約が古い)。さらに調べると、ハードウェアリソースも異なることがわかっている。(自由に移動できないとすれば、同一の金額を支払っている状態でこの違いは少々痛いかもしれない)

ただし、何れの場合においてもMySQL のバージョンを変更した後に、この影響を受けたと推定できる良い影響があったのは嬉しいことだ。ちなみに、体感速度が向上したようにも感じている。

関連記事

スポンサードリンク

Comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です