WordPressのサイトがすごく重くなったのはPopular Postsが原因でした

はじめに

先日、管理している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は重いので、標準で改善するための設定があります。
一つは画像などのキャッシュ、もう一つはサンプリングレートの設定です。
どちらも設定画面の「ツール」にあります。

こちらを設定しました。

これで改善されると良いですね。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

%d人のブロガーが「いいね」をつけました。