WordPress 高速化メモ


130422008
WordPress(ブログ)が遅かったので、高速化のために設定してみました。
サーバーとWordPress初心者による備忘録的な感じです。

今まで特に高速化は気にせず、何もしていませんでした。
ふと速度測定のサイトを使ってみたら、散々な結果でした
GTmetrix(http://gtmetrix.com/) で,
Page Speed: E    YSlow: D (高A~F低の6段階)です。

ちなみにさくらVPS1GBでApacheを使ってます。
Nginxにすると早いらしいのですが、大変そうなのでまずはチューニングしてみます。

 
1.プラグイン導入

W3 Total Cache
類似プラグインもいくつか試したのですが、その中で今回は最も効果がありました。
後述のCloudFlareと連携出来るのも決め手のポイントでした

MO Cache
翻訳ファイルのキャッシュ管理をするプラグインのようです。
Must Use Pluginsとしてインストールすることで効果を発揮するということでしたので、
kira-ismさんのMO CacheをMust-Use Pluginsとしてインストールして最大限の効果を引き出す方法を参考にさせて頂きました。
W3 Total Cache の Object Cacheを利用する、ということで特に設定もなくお手軽です。

DB Cache Reloaded Fix
クエリをキャッシュして高速化するプラグイン。
こちらも「有効」チェック後に保存するだけで簡単です。
私はキャッシュの有効期限の時間を180分に増やしてみました。

WP Smush.it
画像の最適化プラグイン。
導入していれば画像アップロード時に自動で最適化してくれます。
すでにアップロードされている画像も一括で最適化できます。
時間は結構かかります、エラーも何回か発生しましたがとても便利です。
画像もかなり軽くなりました。

BJ Lazy Load
画像の読み込みを遅らせて表示速度を上げるプラグイン。
最初は他のプラグインとの設定が悪く、逆効果になってしまったのでアンインストールしました。
設定を見直し後に再インストールしたところ、Page Speedが向上しました。

他にもいろいろなプラグインを使ってみましたが、とりあえずこの組み合わせに落ち着きました。

 
2.APC導入

APC(Alternative PHP Cache)
PHPの実行コードをキャッシュする仕組みで、PHPの中間コードのキャッシュや最適化を行うらしいです。
WebクリエイターネットさんのAPCでPHPの処理を高速化を参考にyumを使ってインストールしました。
管理画面でキャッシュの状態の確認などが出来ます。

APCグラフ

apc.shm_size 64M→96M
apc.ttl 7200→3600
apc.user_ttl 7200→3600
に変更しました。

 
3.CDN導入

CDN(Contents Delivery Network)
コンテンツの一部をキャッシュさせることでWebサーバへのデータ通信量を減らして高速化するようです。
最初にWP Boosterというサービスを試してみました、有料サービス(ポイント制、お試しポイント有)です。
かなり効果があり導入も楽だったのですが、無料のCloudFlareというのもあるらしいのでそちらも試すことにしました。
ちなみに有料プランのプロ版もあります。
ユーザー登録後にドメイン登録、ネームサーバーの変更をすれば使えるようになります。
丸1日ほど経過後にレポートが参照出来るようになりました。

CloudFlareレポート

セキュリティ 中→高
パフォーマンス CDNのみ→CDN+による最適化
ロケットローダー オフ→自動
に変更。
翻訳がおかしいところは少し気になりますね。

 
4.ApacheとPHPの設定

httpd.confでのApache設定
StartServers 8→5
MinSpareServers 5
MaxSpareServers 20→10
ServerLimit 256→64
MaxClients 256→64
MaxRequestsPerChild 4000→500

php.iniでのPHP設定
memory_limit 64M にして、wp-config.phpでwordpressに割り当て。

 
結果

これらの設定によりGTmetrixでの測定は、

130426003

設定前に比べると、

Page Speed: 57 E86 B
YSlow: 65 D92 A
Page load time: 30s0.71s
Total page size: 600KB171KB
Total number of requests: 6026
となりました。
CSSスプライトの項目が悪く足を引っ張っていますが、設定が大変そうだったので、また次の機会にでも考えてみます。

Apache Bench(ab -n 1000 -c 100 http://~) では、

Apache Bench

Requests per second(1秒当たりの平均処理リクエスト数): 407.14 [#/sec]
Failed requests(失敗したリクエスト数): 0
この辺りが重要なようです、平均がよく分からないですが失敗したリクエスト数も無いですし、まずまずの結果でしょうか?

プラグインの設定で2回ほどデータベースが壊れて管理画面が出なくなり、リストアなどで大変でしたが、これで暫く試してみよう思います。
間違い等あれば指摘していただけると嬉しいです。
 
スポンサーリンク


  1. コメント 0

  1. トラックバック 0

return top