NginxとHHVMでWordPressを動かしたら3倍速くなった!

私は、WordPress をどうしたら速く表示することが出来るか常に考えています。VPS広場は、Nginx + PHP-FPM + MySQLの構成で動いているのですが、WordPressは大量のPHPで書かれている為、PHPの処理がボトルネックになっています。少しでも速くしたければ、Nginxのキャッシュを使えば簡単で最速の表示ができますが…。

前もって言っておきますが、、、
PHPやMySQLをどんなにチューニングしても、Nginxのキャッシュには絶対に勝てません。

でも、それでは面白くもないし、この程度のサイトでNginxのキャッシュに頼りたくもありません。

じゃ、どうすれば速くできるか。

今回は、PHPの処理をPHP-FPM から HHVM(HipHopVM) に変えて実験をしてみることにしました。早速、テストしてみました。

仮想マシンを3台用意して実験です。(スペック:CPU3個、メモリ2GB)

サーバーA Nginx1.6 + HHVM3.0 + MySQL5.6
サーバーB Nginx1.6 + PHP-FPM + APC + MySQL5.6
サーバーC Nginx1.6(キャッシュ)
※ MySQLは実機並みにチューニング済み。Nginxは当サイトで紹介した設定。HHVMとPHP-FPMはデフォルト設定。WordPressもインストールした状態でプラグインは一切入れていません。

スポンサーリンク

WordPressのトップページを表示した結果

サーバーA(HHVM)
nginx-hhvm-test_1

サーバーB(PHP-FPM + APC)
nginx-hhvm-test_2

サーバーC(Nginxのキャッシュ)
nginx-hhvm-test_3
]

WordPressが素の状態なのであまり参考になりませんが、Nginxのキャッシュには及びませんが、HHVMはかなり速いですね。

WordPressのダッシュボードを表示した結果

サーバーA(HHVM)
nginx-hhvm-test_4

サーバーB(PHP-FPM + APC)
nginx-hhvm-test_5

ダッシュボードの操作も倍近く速くなりました。管理画面の操作すべてにおいて速くなっています。メディアのアップロードも問題ありませんし、プラグインも問題なくインストール&有効化出来ました。

Apache Benchの結果

サーバーB → サーバーA(HHVM)
ab -c 100 -n 1000 http://サーバーA/

サーバーA → サーバーB(PHP-FPM + APC)
ab -c 100 -n 1000 http://サーバーB/

サーバーA → サーバーC(Nginxのキャッシュ)
ab -c 100 -n 1000 http://サーバーC/

1秒間辺りに処理が出来る回数
サーバーA 114.59 [#/sec] (mean)
サーバーB 31.09 [#/sec] (mean)
サーバーC 1520.82 [#/sec] (mean)
やはり、Nginxのキャッシュが桁違いで速いですが、HHVMもPHP-FPMの3倍も処理することが出来ました。

HHVMの感想

PHP-FPMに比べて、HHVMは2~3倍速くなる結果となりました。HHVMの結果は悪くないですが、WordPress以外でも動くことが実証されてから導入を検討しても良いかもしれませんね。

読んで頂いて有り難うございます!