WordPressのチューニングで300倍も高速化しました(その3:WP Super Cacheで360倍)

WP Super Cacheによるチューニング

WordPressのチューニングのお話、第三回目です。格安だけどパワーの足りないVPSサービスでも、高速なWeb環境を手に入れるためのチューニング次の一手です。

前回の記事では、PHP-PECL-APCを組み込んで、若干ですが高速化できることが分かりました。でも、体感的には物足りません。PHP-PECL-APCチューニングした後のベンチマーク結果は、以下の前回記事を予めご覧ください。
WordPressのチューニングで300倍も高速化しました(その2:PHP-PECL-APCで1.5倍)

これまでのチューニング

  1.  チューニング前の処理性能︰0.31リクエスト/sec
  2.  PHP-PECL-APCチューニング後の処理性能︰0.43リクエスト/sec(前回比: 1.5倍)

 

第三回目のチューニング

今回は、WordPressのプラグインであるWP Super Cache でチューニングします。WP Super Cacheは、WordPressへプラグインとしての組み込みと、管理画面での設定が必要です。WP Super Cacheとは、どのような働きをして高速化するものなのでしょうか。前回と同様に、デメリットや注意点を把握した上で導入をしましょう。

WP Super Cacheとは

WP Super Cache とは、WordPressで動的に生成するページを「静的ページ」としてキャッシングし、高速化するためのプラグインです。

WordPressは、PHPプログラムが、MySQL(データベース)に格納された記事のデータを取り出し「記事のページ」として生成する、というような動きをします。この、MySQLからデータを取得してページとして作るだけでも、プログラムは多くの処理ステップを必要とします。つまり、「やる仕事が多い」、ということです。この多い仕事を減らしてあげるのが WP Super Cache の役割となります。

では、どの部分で「やる仕事を減らす」のか?

その答えが「キャッシング」にあります。記事のページは、一度、誰かがアクセスしたら静的なHTMLページとしてサーバの中に保存しておき、次に同じページにアクセスされた場合は、静的なHTMLを使えばよい、のです。

上記アンダーライン部分で簡単に書いた処理を、ページにアクセスされる度に毎回やらなくてもよいように、一度、アクセスされたページは静的なファイル(=キャッシュ)としてキャッシングされます。記事の内容が更新されていないのならば、毎回、MySQLデータベースから記事情報を取り出さなくとも、キャッシュされたHTMLを見れば十分ですよね。

WP Super Cache キャッシングの有効化

※プラグインの導入手順は割愛します。


Sponsored Link

WP Super Cache設定ページを開き、「キャッシングの利用」を選択して「ステータスを更新」で設定を反映します。デフォルト設定だけでも相当早くなりました。

WP Super Cache キャッシング有効化

WP Super Cache キャッシング有効化

 PHP-PECL-APC の導入で処理性能が 0.41リクエスト/sec だったのが、WP Super Cache のデフォルト設定で 127.59リクエスト/sec です。ApacheBenchで確認するごとに、当然、性能数値の上下のブレはあるのですが、そのブレ幅は 90 – 230 とそれなりに大きく、だいたい多いのが以下の結果くらいの数値でした。

This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.jinaka.com (be patient).....done

Server Software:        Apache
Server Hostname:        www.jinaka.com
Server Port:            80

Document Path:          /
Document Length:        42300 bytes

Concurrency Level:      10
Time taken for tests:   0.078 seconds
Complete requests:      10
Failed requests:        0
Write errors:           0
Total transferred:      425780 bytes
HTML transferred:       423000 bytes
Requests per second:    127.59 [#/sec] (mean) <- 360倍!
Time per request:       78.379 [ms] (mean)
Time per request:       7.838 [ms] (mean, across all concurrent requests)
Transfer rate:          5305.00 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        1   14   6.3     18      18
Processing:    17   43  17.9     52      60
Waiting:        0   35  24.9     51      59
Total:         19   57  23.7     70      78

Percentage of the requests served within a certain time (ms)
  50%     70
  66%     70
  75%     70
  80%     78
  90%     78
  95%     78
  98%     78
  99%     78
 100%     78 (longest request)

 ApacheBenchのテスト条件見直し

チューニング前の処理性能が 0.31リクエスト/sec。WP Super Cache により 127.59リクエスト/sec にまで改善されました。ただ、良く考えると、ApacheBenchでテストしている「10アクセス」ははっきり言って少なすぎます。当初は、チューニング前の時点から「100アクセス」でやってみてどの程度の性能が出るかを確認したかったのですがロードアベレージが10を超える事態になり・・・。泣く泣く、「10アクセス」にしたのでした。

ここまで性能改善されているなら、100アクセスでも十分に処理できるはず。ということで、実際に abコマンドを投げてみました。

ab -c 100 -n 100 http://www.jinaka.com/
(略)
Requests per second:    86.34 [#/sec] (mean)
(略)

まあ、300倍には少々届かなかったものの、時折300倍を超えることもあり、月額500円未満のお手軽VPSサービスを使っている割には、なかなか良い結果ではないでしょうか。


Sponsored Link

関連記事

WordPressのチューニングで300倍も高速化しました(その1)

WordPressのチューニング WordPressは、標準の使い方のままだと、PHPスクリプトが

記事を読む

no image

サムネイル生成でエラー

プラグイン Regenerate Tumbnails を使って一括サムネイル生成をしようとして気が付

記事を読む

no image

.bash_profile読み直し

1. .bash_profileに設定した変数を変更した場合に、いちいちログアウトしていては面倒。コ

記事を読む

no image

grub シングルモード起動

GRUBのメニュー画面で、起動させたいブートイメージにカーソルをあわせ, (edit)をタイプ

記事を読む

no image

私がMetaTraderが稼働する自動売買環境を構築したきっかけ

当サイトにお越しくださいましてありがとうございます。 今回は、私が構築したMetaTraderの自

記事を読む

ServersMan@VPS (Entryプラン)にデスクトップ環境を構築する

当サイトにお越しくださいましてありがとうございます。 今回は、MetaTraderの自動売買を可能

記事を読む

no image

WordPressデバッグモード切り替え方法

WordPress のデバッグモードの切り替え方法。 プラグインの追加やカスタマイズによるエラーや

記事を読む

no image

ServersMan@VPS (Entryプラン)にWine環境を構築する(その1)

当サイトにお越しくださいましてありがとうございます。 今回は、Linuxデスクトップ上でWindo

記事を読む

cygwinの導入

1. インストール用パッケージをダウンロード cygwinホームページ(http://www.cy

記事を読む

ServersMan@VPS (Entryプラン)にリモートデスクトップ環境を構築する

当サイトにお越しくださいましてありがとうございます。 今回は、ServersMan@VPSに、

記事を読む



文鳥ブログ ふたたび!

以前も文鳥に関するブログは書いていたのですが、 諸事情により中断してしまったことがありました。 でも決して、飼っていた文鳥が死んだとか逃げたとかではありませ

ミドリガメ
ミドリガメを飼っています

我が家では、「トト」という名前のミドリガメを飼っています。 ホームセンターのペットショップで買ってきたミドリガメの子どもです。 飼い始めてから3

no image
WordPressデバッグモード切り替え方法

WordPress のデバッグモードの切り替え方法。 プラグインの追加やカスタマイズによるエラーや動作がおかしいがなかなか原因がつかめない場合に、デバッグモー

no image
ServersMan@VPS (Entryプラン)にWine環境を構築する(その1)

当サイトにお越しくださいましてありがとうございます。 今回は、Linuxデスクトップ上でWindowsアプリケーションを稼働させる環境、Wineを導入します。

no image
サムネイル生成でエラー

プラグイン Regenerate Tumbnails を使って一括サムネイル生成をしようとして気が付いた問題。 The resize request wa

→もっと見る

PAGE TOP ↑