オープンソースのブログとしては世界一使われているWordpress。
WordPress is used by 58.5% of all the websites whose content management system we know. This is 27.1% of all websites.
引用Usage Statistics and Market Share of WordPress for Websites, November 2016
W3Techsの発表によると全世界のウェブサイトの4分の1はWordpressが使われているのだとか。
手軽な反面、使っているうちにだんだん重く感じてくることも・・・。その理由はプラグインが原因であったり、サーバーのスペック不足であったり、トラフィックの増加なよるものであったり様々。
そんな不安を解消する要素の1つにWordpressが高速に動作するサーバーやサービスなどがあります。
今回はWordPressが高速に動作する仮想イメージKUSANAGIをさくらのVPSで試してみたのでそのあたりの話をします。
KUSANAGIとは?
超高速WordPress仮想マシン「KUSANAGI」(以下「KUSANAGI」)は、プライム・ストラテジー株式会社が開発・構成する、WordPressを高速に動作させるための仮想マシンおよびそのイメージです。WordPressの実行時間3ミリ秒台、秒間1000リクエストをページキャッシュ非使用で実現する世界最高速クラスのWordPress実行環境です
引用超高速WordPress仮想マシン「KUSANAGI」について – KUSANAGI
仮想イメージなので、利用可能なサービス(サーバー)は限られておりますがAWS、Microsoft Azure、さくらのクラウド、Conoha、GMOクラウド ALTUS
などのパブリッククラウドサービスほか一部VPSで利用可能。
冒頭でも書いた通り、今回は安価に利用可能なさくらのVPS
で試してみました。
KUSANAGIのインストール
まずKUSANAGIをサーバーにインストールする必要があるのですが、仮想イメージなので既存のサーバーを使う場合は初期化することになります。(OSをクリーンインストールする感じ)
もし試してみたい方は、こちらを参考にインストールしてみてください。
KUSANAGI専用プラグイン
WordPressのインストールが完了すると左メニューに「KUSANAGI」の項目が追加され、KUSANAGI専用プラグインの設定画面を表示することができます。
設定項目は以下の通り。
- ページキャッシュの設定
- デバイス切り替えの設定
- 翻訳アクセラレーターの設定
- パフォーマンス表示の設定
ページキャッシュの設定
ページキャッシュはページを表示する際に、一定時間保存してあるファイルにアクセスし、表示速度を向上する機能です。
デフォルトではキャッシュが有効になっていません。sshか管理コンソールからkusanagi bcache onコマンドでオンにします。
サイトの性質によって長時間キャッシュしたくないページやほとんど内容が変わらないので長時間キャッシュしても良いページなどさまざまあると思います。
この項目ではトップページ、アーカイブページ、記事ページでそれぞれキャッシュ時間を設定することができます。
キャッシュ除外URLでは個別に設定可能です。なお、wp-adminディレクトリは予め除外されています。
その他、記事公開時に削除するキャッシュの範囲は、字面通りで記事を公開したタイミングでキャッシュをクリアする範囲の設定です。
記事を公開したタイミングで表示が変わる項目を設定する必要があるので「記事とトップページ」にしてみました。
キャッシュのクリアはボタンを押すとすぐにキャッシュがクリアされます。一時的にサーバーに負荷がかかるため注意して実行したほうが良いです。
advanced-cache.phpの再生成はキャッシュ利用開始時や上記の設定を変更した際、必ず再生性したほうが良いようです。
デバイス切り替えの設定
デバイスごとにテーマをを切り替える設定が出来ます。デフォルトのまま停止にしておきました。
翻訳アクセラレーターの設定
wordpressは日本語サイトの場合、ja.mo という翻訳ファイルを介してからサイトや管理画面を表示する仕組みとなっています。
そのため英語版より読み込みに時間がかかっています。
その翻訳ファイルのキャッシュ設定画面です。まずはデフォルトのままにしておきました。
パフォーマンス表示の設定
管理バーにパフォーマンスを表示する設定、権限の設定ができます。こちらもデフォルのままで。
なお、管理バーのパフォーマンス表示は、表示時間とロードクエリ数が管理バー右上に表示されます。
画像最適化
画像最適化ではJPEGファイルの画質、フルサイズ画像の最大幅設定ができます。
KUSANAGIで実行した結果
Apache Bench
まずはコマンドラインからApache Benchで比較。100ユーザーが同時にアクセスした想定になります。
ab -n 100 -c 100 http://hogehoge.com/
結果、差があった項目などをあげてみます。
通常 | KUSANAGI (キャッシュなし) |
KUSANAGI (キャッシュあり) |
|
---|---|---|---|
Time taken for tests | 19.936 seconds | 2.564 seconds | 0.155 seconds |
Requests per second | 5.02 [#/sec] | 39.01 [#/sec] | 643.42 [#/sec] |
Time per request | 199.358 | 25.636 | 1.554 |
Transfer rate | 87.14 [Kbytes/sec] | 985.44 [Kbytes/sec] | 16342.44 [Kbytes/sec] |
Time taken for tests(所要時間)は圧倒的にKUSANAGI(キャッシュあり)が速いです。
1秒間にさばけるリクエスト(Requests per second)、1リクエストあたりの処理時間(Time per request)、転送速度(Transfer rate)も見ての通りかなりの差がありました。
KUSANAGIではWebサーバーはApacheとNginx、アプリケーションサーバはHHVM、PHP7、PHP5を選択できます。
今回の試した環境は、旧環境がApache+
PHP5で、KUSANAGIの環境がNginx+PHP7という環境で行いました。
Webサーバーや、アプリケーションサーバーの違いでも差が出ているとは思いますが、KUSANAGI側の他の組み合わせでも結果は異なるかもしれません。
最後に
こんなに速いのであれば全部KUSANAGIにしたくなりました。
ただ、PHP7で廃止された関数を使っているプラグインを利用している場合うまく動作しなくなる場合がありますのでご注意ください。
有名どころですとキャッシュ系プラグインの「W3 Total Cache」でエラーがでる不具合があるようです。
KUSANAGIで運用するのであれば既存のキャッシュ系プラグインは全て無効にしたほうが良さそうですね。
linuxの知識が必要にはなりますが、試してみたい方は2週間無料お試しの「さくらのVPS」がおすすめです。