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

関連記事

small_4919659112

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

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

記事を読む

no image

セキュリティ編(クラッキング!)

どうもおかしい? 開発用として使用していた某有名メーカーのサーバーが、どうも様子がおかしい。それは

記事を読む

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

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

記事を読む

no image

grub シングルモード起動

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

記事を読む

no image

.bash_profile読み直し

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

記事を読む

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

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

記事を読む

no image

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

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

記事を読む

no image

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

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

記事を読む

small_4919659112

WordPressのチューニングで300倍も高速化しました(その2:PHP-PECL-APCで1.5倍)

PHP-PECL-APCによるお手軽チューニング WordPressのチューニングのお話、第二回目

記事を読む

cygwinの導入

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

記事を読む



北海道の小旅行記 夏の利尻 2000

利尻に到着 鴛泊港到着 フェリー乗り場横の食堂 なぜか三色丼・・・ 仙法志御崎海岸夏真っ盛りの8月。利尻島に渡るべく、稚内に

北海道つながりリンク

北海道な生活! みる・食べる・行く!! 北海道な生活!みる・食べる・行く!! 札幌にお住まいの旅人さんのブログです。北海道の食や旅先の写真が楽

積丹町(うにツアー?) 2001.4.28~4.29 札幌市 ~ 積丹町 (美国 ~ 日司 ~ 神威岬) ~ 余市町 ~ 仁木町

出発。日帰り旅行 出発前、というよりも、その日は昼過ぎまでまったく出かけなさそうな雰囲気。就職して初めて取るまともなGW。「出かけても混んでいるだろう」という

富良野市(北の国から) 2001.6.5~6.6 札幌市 ~ 富良野市(富良野駅 ~ 麓郷) ~南富良野町 ->かなやま湖畔キャンプ場

富良野へ出発 2001年、初キャンプ。今年は去年より1か月も早いキャンプのスタート。キャンプの場所は南富良野町、金山湖にある「かなやま湖畔キャンプ場」。 思え

dohtoh1
夏、道東旅行(我が子初遠征) 【前編】 2002.8.22~8.26(うち、8.22~8.23) 札幌市 ~ 遠軽町(旭川市経由) ~佐呂間町 ~ 女満別町 ~ 弟子屈町 ~羅臼町 ~ 斜里町 ~ 丸瀬布町

旭川経由で遠軽町へ 一日目ルート 遂にやってきた夏休み。天気は雲が出てるものの青空。今年はお盆から時期をずらして8/22~26の5日間で道東を回る予定。

→もっと見る

  • ページランク
    PAGE TOP ↑