AmimotoHHVMの提供開始

チューニング済みの WordPress 環境が簡単に手に入るAmimotoAMIシリーズに hhvm が設定済みのAMIが追加されました。
WordPress powered by Amimoto (HHVM)
こちらのAMIは 14日間の free trial 期間がありますので、気になる方は気軽にお試しください。
AWSでは、アカウント開設後1年間はEC2の t1.micro, t2.micro の利用料が無料になりますので、新規アカウントで作成すれば14日間は無料で利用して試すことができます。

以前から提供されているAmimotoAMI(HVM)との違いは以下の通りです。

php-fpm版 Amimoto HHVM版 Amimoto
Virtualization Modes HVM HVM
OS Amazon Linux Amazon Linux
HTTPエントリ nginx nginx
upstream fastcgi fastcgi
PHPランタイム php-fpm (5.5) hhvm (5.6相当)
DB Percona Percona

基本的には変わりませんが、PHPが php-fpm から HHVM に変更になっています。
AmimotoAMIでは Nginx Cache Controller という WordPress のプラグインを利用して Nginx のリバースプロキシキャッシュを利用しているため、非ログイン時の性能についてはさほど変わりがありません。
しかし、会員サイトとして WordPress を利用しているなどの理由で Nginx のリバースプロキシキャッシュの恩恵を受けることができない場合に HHVM 版の効果を確認することができるでしょう。

HHVM版 Amimotoと、php-fpm版 Amimotoの比較

同じインスタンスタイプで Nginx リバースプロキシキャッシュを無効にした場合のHHVM版Amimotoと、php-fpm版Amimotoの比較は以下の通りとなります。

前提条件

  • 負荷計測ツールはLoader.ioを使用する
  • インスタンスタイプは c3.large
  • Duration: 1分
  • Type: 期間中にクライアント数を0-300まで増加(Maintain client load)

トップページ

WordPressインストール直後のトップページに対して、Nginx のリバースプロキシキャッシュを無効にした状態での負荷計測結果は以下の通りです。

php-fpm版Amimoto

top page (php-fpm)

HHVM版Amimoto

top page (hhvm)

どちらもクライアントが増加していくことで、ほぼ線形にレスポンスタイムが遅延していっています。
ただし、hhvm版の方がよりレスポンスタイムが速いことが見て取れると思います。

比較表

php-fpm版 HHVM版 (参考)nginxキャッシュ有効
平均レスポンスタイム 3108ms 1566ms 15ms
リクエスト処理数 2637 5387 386830

管理画面

次に管理画面にログインして、以下の動作を行った場合の測定結果です。

  • 管理画面ログイン (POST /wp-login.php )
  • 記事一覧表示 (GET /wp-admin/edit.php )

php-fpm版Amimoto

admin page (php-fpm)
admin page (php-fpm)

HHVM版Amimoto

admin page (hhvm)

php-fpm版では150-200クライアントのあたりで50xエラーが出るようになり最後まで計測できませんでしたが、HHVM版ではレスポンスタイムが遅くなりましたが最後まで動作しています。
速い上に落ちにくいHHVM版Amimotoの特性が見て取れると思います。

ただし、HHVM版ではPHPのバージョン 5.6相当となっています。
使用しているプラグインやテーマによっては Fatal Error が発生して動作しないことがありますので、本番稼動前には入念にチェックを行ってください。