目次
はじめに
先日、管理しているWordPressのサイトが激重になりました。
どのページをロードしてもつながりません。管理画面も開くことができません。接続がタイムアウトしてしまいました。
そちらの原因について調査しました。
サーバ機能の再起動
このサイトではPHP機能のデーモンとしてHHVMを立てていました。nginxからHHVMへの接続が原因のようだったので再起動しました。
しばらくはつながりましたがその後すぐに重くなっていまいました。
MySQLが重い
このサイトではサーバのリソースについて、Muninで監視していました。
Muninのグラフを確認するとMySQLのスロークエリが増えていることがわかりました。
ということで実際にどういったスロークエリが出ているか確認しました。
$ tail -f /var/log/mysql/slow.log
スロークエリにはwp_popularpostsdata
というテーブルに関するクエリが流れています。
ということでこのプラグインを無効化してみました。
するとサーバの負荷はかなり改善されました。
Popular Postsは重い
人気記事を取得する WordPress Popular Postsプラグインは、便利で有名なのですが、アクセスがあるごとにデータベースでアップデート文を走らせるため、サーバにかなり負荷を掛けることになります。
今回のサーバでは1日に100万PVほどあるサイトだったため、それが原因だったようです。
Popular Postsの設定
Popular Postsは重いので、標準で改善するための設定があります。
一つは画像などのキャッシュ、もう一つはサンプリングレートの設定です。
どちらも設定画面の「ツール」にあります。
こちらを設定しました。
これで改善されると良いですね。