WordPressの投稿が異常に遅い場合はQuery Monitorを使おう!

ポイ探ニュースでも利用しているWordPressですが、投稿時に異常な負荷がかかり、投稿完了までにかなりの時間がかかっていました。

ロードアベレージを見ても10~30程度。サイトへのアクセスもできないくらいの値です。

そこで、プラグインのQuery Monitorをインストールして、どの処理で速度低下、高負荷になっているのかを探してみました。

まず、「新規投稿」ボタンをクリックすると、10秒近くかかります。高負荷になっていたのは、次のSQL文。

SELECT meta_key FROM wp_postmeta GROUP BY meta_key HAVING meta_key NOT LIKE ‘\_%’ ORDER BY meta_key LIMIT 30;

mysqlで実際に動かしてみると10.62秒かかります。

色々と検索した所、meta_keyのvarchar(255)が問題のようです。varchar(191)に変更します。

ALTER TABLE wp_postmeta MODIFY meta_key varchar(191);

再度SQLを実行すると、0.43秒と大幅にスピードアップしました。「新規投稿」ボタンをクリックしても、そこそこのスピードで表示されます。

この状態で新規に投稿した所、やはり高負荷は解消されません。Query Monitorを見ると、プラグインのSQLが遅いことがわかります。投稿と同時にtwitterにも投稿してくれるプラグイン「WordTwit Twitter Plugin」が重い原因のようです。こちらを停止。

ロードアベレージも1~2程度に落ち着きましたので、これでしばらく様子を見たいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください