これでHHVM環境の最低限の設定が完了しました。PHP 7を停止してから、HHVMを有効化します。
[root@ip ~]# systemctl disable php-fpm [root@ip ~]# systemctl stop php-fpm [root@ip ~]# systemctl enable hhvm [root@ip ~]# systemctl start hhvm
ブラウザでトップページにアクセスしてください。初回はバイトコード生成のために時間がかかりますが、2度目以降のリロードで、だんだんページのロード時間が速くなっていきます。ブラウザを何度もリロードしてみましょう。十数回ほどリロードするとJITコンパイルが行われて、性能が向上します。筆者の環境では、およそ「16ms前後」になりました。
続いてabコマンドで1秒当たりの同時アクセス数を測定してみます。
[root@ip ~]# ab -n 300 -c 30 http://ec2-xxx.xxx.compute.amazonaws.com/
こちらも、10秒ほどの間隔を空けて7回ほどabコマンドを繰り返してみてください。徐々に性能が向上していくことが確認できます。筆者の環境では7回目のabコマンドで、1秒当たりの同時アクセス数(Requests per second)が「195.05」となりました。PHP 7よりも約1.32倍のパフォーマンス向上が確認できました。
チューニング内容 | ページのロード時間 (デフォルト環境比) |
1秒当たりの同時アクセス数 「Requests per second」(デフォルト環境比) |
---|---|---|
デフォルト環境 | 176ms | 11.24 |
APCの導入 →チューニング方法をおさらい |
70ms(約251%) | 29.20 |
OPcache+APCuを導入 →チューニング方法をおさらい |
66ms(約266%) | 30.51 |
MariaDBの設定を調整 →チューニング方法をおさらい |
64ms(約275%) | 31.82 |
翻訳アクセラレータを導入(キャッシュ) →チューニング方法をおさらい |
53ms(約332%) | 39.29 |
翻訳アクセラレータを導入(翻訳を停止) →チューニング方法をおさらい |
36ms(約488%) | 56.78 |
gzip圧縮を用いる →チューニング方法をおさらい |
35ms(約502%) | ─ |
Tunedの調整 →チューニング方法をおさらい |
34ms(約517%) | 58.47 |
event MPM+php-fpm構成に変更 →チューニング方法をおさらい |
33ms(約537%) | 60.79 |
PHP 5.6+OPCache+APCuを導入 →チューニング方法をおさらい |
32ms(約550%) | 61.84(約550.2%) |
PHP 7+OPCache+APCuを導入 →チューニング方法をおさらい |
18ms(約977.7%) | 148.08(約1250.6%) |
HHVMを導入 | 16ms(約1100%) | 195.05(約1690.8%) |
今回までのチューニングで、チューニングなしの初期状態と比べて「約16.9倍」高速になりました。
次回は、WebサーバをApacheの代わりに「Nginx」に変更し、デフォルト環境比で「約18.2倍」まで高速化するチューニングを施していきます。
1971年栃木県生まれ。中学1年生で電波新聞社の『マイコンBASICマガジン』にプログラムを寄稿して以来、プログラミング歴30年。早稲田大学法学部を卒業後、野村證券に入社。公認会計士第二次試験合格。2002年にプライム・ストラテジー株式会社を設立、代表取締役に就任する。2005年にPT. Prime Strategy Indonesiaを設立して以来、アジアでのITビジネスに携わる。執筆監訳書籍に『WordPressの教科書』シリーズ(SBクリエイティブ)、『詳解 WordPress』『WordPressによるWebアプリケーション開発』(ともにオライリー・ジャパン)などがある。
Copyright © ITmedia, Inc. All Rights Reserved.