Road To Nowhere

主にWebまわりのエンジニア的なお仕事に関するようなことのあれこれ。

WordPressの表示の高速化を試みたときのメモ

WordPress(2.7.1)をインストールした自宅サーバーがかなり低スペックで、
動きがすごくもっさりしていたので、高速化を試みたときのメモ。


ちなみにどれくらい低スペックかというと、最近5000円位で買った中古PCで、
メモリが256M、CPUがCeleron 900MHzといったところ。


以下の簡単なabコマンドでパフォーマンスを測ることにする。

ab  -c 1 -n 10 'http:/yourdomain/wordpress/'


まずは対策前の状況。(コマンド結果抜粋)

Concurrency Level:      1
Time taken for tests:   71.523 seconds
Complete requests:      10
Failed requests:        3
   (Connect: 0, Receive: 0, Length: 3, Exceptions: 0)
Write errors:           0
Total transferred:      65209 bytes
HTML transferred:       62979 bytes
Requests per second:    0.14 [#/sec] (mean)
Time per request:       7152.341 [ms] (mean)
Time per request:       7152.341 [ms] (mean, across all concurrent requests)
Transfer rate:          0.89 [Kbytes/sec] received


もうだめだめ。
10回のリクエストで71秒かかってる。
Failed requests:3とかなってるし。


調べてやってみたのが以下。

プラグインWP-Cache

まずこちらが一番簡単にできそうだったので試してみる。
参考にしたのはこちらのページ。
http://wordpress.bowz.info/56


しかし、管理画面からプラグインを有効化しようとすると、

新しいバージョンの wp-cache i18n が利用可能です。バージョン 2.1.2 の詳細を見るか、自動アップグレードを実行してください。

というメッセージ。
調べても、wp-cache i18nの新しいバージョンは見つからないし、2.7.1には対応してないのかなぁ。
ということで、あっさりあきらめる。

オブジェクトキャッシュ

こちらも簡単にできそうだったので試してみた。
参考にしたのはこちらのページ。
WordPressをオブジェクトキャッシュで高速化 | まきまき.jp


こちらの操作を実際にやって、wp-content/cacheにキャッシュができ、
キャッシュが動作をしていることを確認して、abコマンド。


結果は、、、残念ながら効果なし。むしろさらに悪化したような結果に。
理由はわからないけど、もう一つ奥の手があるので、ここはあまり追求しない。

eAccelerator

結果から先に言うと、これが圧倒的に効果があった。

参考にしたのはこちらのページ。
PHP-eacceleratorのインストール | Myblog


abコマンド結果抜粋

Concurrency Level:      1
Time taken for tests:   6.028 seconds
Complete requests:      10
Failed requests:        0
Write errors:           0
Total transferred:      64870 bytes
HTML transferred:       62640 bytes
Requests per second:    1.66 [#/sec] (mean)
Time per request:       602.816 [ms] (mean)
Time per request:       602.816 [ms] (mean, across all concurrent requests)
Transfer rate:          10.51 [Kbytes/sec] received


71秒→6秒なので、10倍以上速くなった。

まだもっさり感はあるが・・・

とりあえず今日のところはこれで満足することにする。
プラグインWP-CacheはHTML自体をキャッシュするそうなので、
今後はまずこれをうまく使いたいところだ。