CakePHP1.2から2.3にアップデートしたらサーバの負荷が半減した

あるプロジェクトでCakePHP1.2を使っていたのですが、そろそろサポート期間も終わりそうな気がしたのでCakePHP2.3の最新版にアップデートしました。
サイトは月に数百万PVぐらいの規模で、DBテーブル数は80ぐらい、それに加えてViewテーブルやストアドプロシージャを使ってます。これを3年ぐらい前のさくらの専用サーバ1台でさばいてます。(Xeon 2コア、メモリ4G、Apache, mod_php(5.3), MySQL構成)


CakePHP2からモデルのレイジーローディングなども入ってコア自体も効率化されたため、パフォーマンスは上がるだろうなとは思ってました。
実際に本番サーバにデプロイしたところ、CPUのロードアベレージが半分ほどになりました。


週単位のグラフを見ると、リリース前はピークが200ぐらい、平均100ぐらい(100はtopコマンドなどで見るロードアベレージ1と同じです)。

リリース後には、ピークが100、平均50ぐらいになってます。ちょっと縦軸の幅が違うので分かりにくいかもしれませんが。


1日単位のグラフで見ると、リリース前は日中の負荷は100〜200の間ぐらいでしたが、

リリース後の日中の負荷は100以下になってます


CakePHP1と2のパフォーマンス比較はHelloWorld的なもので1.5倍ぐらいパフォーマンスが良くなるというのは計測で分かってました。実アプリのコードにすると複雑さが上がるのでCakeコアの効率化による恩恵は大きいことが分かりました。


今回の移行では、現行のコードをCakePHP2.3で動かして動かない箇所をひたすら修正していく作業でした。それ以外のリファクタリングは行っていません。
色々と大変だったのですが、移行の話は下記の記事にまとまってます
「Cake Beer TalkでCake1から2への移行Tips100を発表しました」