連載
» 2016年05月02日 05時00分 公開

とにかく速いWordPress(8):「WordPress“1000倍”高速化」チューニング 第四弾──Webサーバを「Nginx」に切り替える (2/2)

[中村けん牛,プライム・ストラテジー]
前のページへ 1|2       

Nginx+HHVM構成を整え、ベンチマークを計測

 WordPressを動作させるバーチャルホストの設定も行います。次の内容を「/etc/nginx/conf.d/http.conf」として保存します。なお、server_nameの行は、自身の環境のホスト名に書き換えてください。

server {
        listen 80;
        server_name ec2-xxx.xxx.compute.amazonaws.com;
        root  /var/www/html;
        index index.php index.html index.htm;            
        location / {
                try_files $uri $uri/ /index.php?$args;
        }
        location ~* /\. {
                deny all;
        }
        location ~ [^/]\.php(/|$) {
                fastcgi_split_path_info ^(.+?\.php)(/.*)$;
                if (!-f $document_root$fastcgi_script_name) {
                                return 404;
                }
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}
リスト:「/etc/nginx/conf.d/http.conf」の内容(“xxx”はユーザー固有の文字列)

 Nginxを再起動します。

[root@ip ~]# systemctl restart nginx

 これで、Nginx+HHVM構成が整いました。ブラウザをリロードすると、WordPressのトップページが表示されます。これまでと同様にFirebugでページのロード時間を計測すると、筆者の環境では、およそ「16ms」前後になりました。前述した通り、このテストによる値はこれでほぼ上限です。

 同じくこれまでと同様に、abコマンドでのベンチマークを数回を繰り返します。

[root@ip ~]# ab -n 300 -c 30 http://ec2-xxx.xxx.compute.amazonaws.com/
(“xxx”はユーザー固有の文字列)

 筆者の環境では、1秒当たりの同時アクセス数を示すRequests per secondの値が「205.20」となりました。Apache+HHVM構成に比べてさらに数%パフォーマンスが向上しました。

 参考までに、同じベンチマークをNginx+PHP 7構成でも測定してみましょう。

[root@ip ~]# systemctl disable hhvm
[root@ip ~]# systemctl stop hhvm
[root@ip ~]# systemctl enable php-fpm
[root@ip ~]# systemctl start php-fpm
[root@ip ~]# ab -n 300 -c 30 http://ec2-xxx.xxx.compute.amazonaws.com/
(“xxx”はユーザー固有の文字列、以下同)

 この場合は、ページのロード時間がおよそ「16ms前後」、Requests per secondは「151.07」にとどまりました。しかし、Nginxに代えることで、これまでのApache+PHP 7構成よりもパフォーマンスが向上することも確認できました。

チューニング内容 ページのロード時間
(デフォルト環境比)
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%)
Nginxを導入(Nginx+PHP 7) 16ms(約1100%) 151.07(約1344%)
Nginxを導入(Nginx+HHVM) 16ms(約1100%) 205.20(約1825.6%)

 今回までのチューニングで、チューニングなしの初期状態と比べて「約18.2倍」高速になりました。

 いよいよ、“1000倍高速化チューニング”の仕上げに入っていきます。次回は、WordPressのプラグイン「WP SiteManager」を用いたページキャッシュを導入し、デフォルト環境比で「約228倍」まで高速化するチューニングを施していきます。

筆者紹介

中村けん牛

1971年栃木県生まれ。中学1年生で電波新聞社の『マイコンBASICマガジン』にプログラムを寄稿して以来、プログラミング歴30年。早稲田大学法学部を卒業後、野村證券に入社。公認会計士第二次試験合格。2002年にプライム・ストラテジー株式会社を設立、代表取締役に就任する。2005年にPT. Prime Strategy Indonesiaを設立して以来、アジアでのITビジネスに携わる。執筆監訳書籍に『WordPressの教科書』シリーズ(SBクリエイティブ)、『詳解 WordPress』『WordPressによるWebアプリケーション開発』(ともにオライリー・ジャパン)などがある。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。