朝起きてすぐに、自分のサイトを確認するのが最近の日課となっているのですが、
その日はいつもとは違っていました。
アクセスしてからサイトが表示されるまでの時間が長い長い!
ネットワークが遮断されてるのかなと思うほど待った頃に、
ようやくページが表示されました。
下の画像は、ページの読み込みにかかった時間を計測したものですが、
なんと、50秒ほどかかっています。
それもページを移動する度にこのくらいの時間がかかるので、
3ページ移るとカップラーメンができてしまいそうです。
流石にこの遅さは放っておけないので、
原因を調べて何とか解決しようともがいたので、
また同じようなことが起こった時のために、
原因調査で行ったことなどを全てまとめておこうと思います。
原因調査
他のサイト、サービスはどうか
同一のサーバーで複数のサイトを扱っている場合は、
まず、そのサイト個別の問題なのか、サーバーの問題なのかの確認がしたいですね。
そこで、サーバー上で動かしているWebサイト全てにアクセスしてみたところ
であることが分かりました。
このことから、サーバーの問題というより、
WordPress 上での問題である可能性が高くなりました。
また、WordPress とデータベースを共有している
ownCloud に影響がないということは、データベースの問題でもなさそうです。
サーバーのリソース確認
サーバーの問題ではなさそうでしたが、
念のため、計算資源がひっ迫していないかを確認します。
まずはメモリから、
free -h
を実行したところ
潤沢とは言えませんが、そこまで致命的ではなさそうです。
続いて、CPUの使用量です。
サーバーの性質上40%がマックスになっています。(下記事参照)
clean-copy-of-onenote.hatenablog.com
優先度最低で裏で動作しているプロセスがCPUを使い切ってくれていますが、
こちらはほぼ問題ないでしょう。
ログを調べる
何かエラーが出ているなら、ログを見ると分かるかもしれません。
ということで、問題が起き始めたであろう頃のログを確認しましょう。
ls -altr /var/log
で、新しいものが下に来るようにソートした
ログの一覧を表示して、
関係のありそうなログを眺めていきます。
ところが、特に変わったエラーが起きているということではなさそうでした。
試行錯誤
見てわかる情報だけだと、有力な手掛かりが見当たらなかったので、
操作を加えつつ解決策を探してみます。
裏で動作しているプロセスを止める
CPUを使い切るように裏で動作させていたプロセスを止めます。
優先度を低く設定しているので、このプロセスが動いているからと言って、
他のプロセスに影響を与えることはないはずですが、念のため。
結果は、変わらずでした。
Apache をリスタート
とりあえず、困った時の再起動ということで、
sudo service apache2 restart
で apache を再起動してみます。
こちらも、効果なしでした。
WordPress のプラグインを全て無効にする
WordPress 上で問題が生じている線が濃厚だったので、
WordPress 上で問題となり得るプラグインを一旦停止します。
プラグインは非常に便利ですが、他人の作ったものなので、
自分の預かり知らないところで問題を起こすこともあります。
どのプラグインが悪さをしているか、していないか分からないので、
とりあえず全部止めてみましょう。
管理画面でもページを移動するのに時間がかかってしまうので、
今回はCUIが重宝しました。
wp plugin deactivate --all
で全てのプラグインを無効にできます。
その後にサイトにアクセスしてみると、
ページのアクセスが通常時の速度に戻りました!
原因はプラグインにあることが分かりました。
原因
プラグインが原因だと分かったので、
後は一つずつプラグインを有効にしてみて、
どのプラグインが悪さをしているのかを突き止めれば良さそうです。
そして、今回の WordPress を重たくしていたプラグインは
「All in One SEO」 であることが分かりました。
こちらは、SEO対策を補助してくれるかなり定番のプラグインなので、
自分が運営しているすべての WordPress サイトに導入していました。
まさか、とは思ったのですが、
ページのロードにかかる時間が、
有効にしていると50秒、無効にすると2秒となってしまうので、
間違いなく、All in One SEO が今回の問題の原因のようです。
その日になるまでは、All in One SEO は問題なく動作していたにもかかわらず、
いきなり、All in One SEO を導入しているすべてのサイトが重くなったことから、
バージョンアップ等のタイミングが影響していたのでしょうか?
いづれにせよ、All in One SEO をそれほど使いこなせていなかったので、
この機会に全てのサイトから除外することにしました。
まとめ
多くのサイトでオススメされているプラグインであっても、
このような問題を突然起こすことがあるのですね。
不要なプラグインはなるべく使わないように気を付けましょう。