どうも、ほっしー(@HossyMentalHack)です。
昨日、サイトをリニューアルしてから一時的にサイトがめちゃめちゃ重たい状態になりました。
試行錯誤の結果、なんとか回復できました。記録として残しておきます。
ブログの異常
全てのページが遅い
新しいテーマに変えてから直後は軽快に動いていたのですが、急に動きが重たくなりました。
その重さは本当に異常で、タイムアウトすることもしばしば、ページに接続するのに2〜3分はかかるといった感じです。
トップページや記事ページ、はたまたWordPressの管理ページまで遅くなってしまい、原因を究明するにも重いのでやたらと時間がかかる…重い腰をなんとかあげてこの問題に立ち向かいました。
どこが悪さをしているのか
まず、プラグインが悪さをしているのではないか?と疑いました。
そこでP3(Plugin Performance Profiler)というものを導入してなにが悪いのか突きとめることに。

うわー…これはあかんですよ。プラグイン読み込みに4秒もかかってる…でもなんかおかしいですよね。
ブログページの読み込みには数分要するんですよ。
プラグインだけが原因とはどうも思えない…。


とはいえ、この妙な動き…気になります。なぜこんなに応答時間にムラがあるのか(笑)
とりあえず、いくつか消したりしてみたのですが特に変化はありませんでした。

え…このDB(データベース)関連のエラーはできれば触りたくない…メモリが異常なぐらい膨れ上がってて落ちてるみたいです。
テーマを変えたことに影響が?
テーマを元のものに戻すと、実は元通り動くんです。それでも、たまに極端に遅くなったりします。だからテーマが遅いとも言えない…。
毎回違う動きをするので、問題の切り分けが全くできていない状況で、どんどんと新しいことを試していきました。
本当は良くないことなのですが、今は進めるしかありません。
え?データベース系が悪いの?
検索してみると、同じような問題に悩んでいる方がいらっしゃいました。しかし、覗いてみると、WordPress4.3の深刻なバグだったようです。私が使っているのはWordPress4.4なので、もう改善されているはずなんです。
それに、この問題は一日そこらで解決できそうにないぞ!!と思ったので、一旦棚上げにしました。プログラムのエラーって関係ないのにエラー出したりするんですよ。要するに、今回、DBエラーではないのに、DBエラーって吐き出している可能性もあるんです。
まぁ、極力DBは触りたくないので、一旦棚上げということです(笑)
一応、ログファイルを確認してみた
ログファイルをみるとMJ12BOT(Michael Jacksonかよ…)なるものがアクセスしてきている形跡がある。これは攻撃かどうかまではわからないが…
検索をかけてみると、詳しいことはともかく、ページを重くするやつだということがわかりました。
とりあえず意味不明なやつはブロックしておこうと思って、「.htaccess」ファイルに以下の記述を加えました。
1234567 order allow,denyallow from all# reject fake mj12SetEnvIfNoCase User-Agent"^MJ12bot/v?1\.[01]\.[0-9]{1,2}"blockDeny from env=block
これでとりあえずは、異常なアクセスは見られなくなりましたが…重い現象は治りません。
とりあえず解決はしました
思考錯誤しているうちに…
SNS Count Cacheというプラグインがどうやら原因だった模様。これを消してから動作が格段に軽くなりました。
プラグインの停止については最初のほうに試したりしたので、プラグインは悪くないだろうと思ったのですが…
SNS Count Cacheを停止、および削除してからの動きはおおむね安定して、動いています。そういえば、このプラグイン入れてから以前のテーマでも重くなったような…。
キャッシュの削除も試みたんですが、結局このプラグインを消さないと、無意味だったということです。
原因は不明なまま
SNS Count Cacheを消すことで復活することができましたが、具体的にこのプラグインの何が問題だったのかというところまでは追究できていません。
テーマ「マテリアル」が問題だったと思うのも、なんか違う気がしますし…しっくりこないような何のか…。
テーマについては、今はストークというテーマを使ってます。
一番嫌なのは、原因が特定できないことによって、再度同じような問題が起こるかもしれないということです。
そうしたとき、また一からこの工程をしないといけないのかと思うと、今からでも頭が痛くなりますね…。
さいごに
今回、サイトが重くなることでPHPの奥深いところまで目を通す機会になりました。
久しぶりにプログラムを見ると目がちかちかしましたね(笑)
それにしても、改めてページの軽さが大切だと認識させられました。
デザインも凝ったものにしたいけど、ページも早くしたい。
トレードオフなように思えますが、両方実現せねばなりません。
今までプラグインに対しての意識が低かったのでいい勉強になりました。
使わないプラグインは必ず停止しておきましょう。少しでも軽くするために。
計測に使用するプラグインなんて、計測するときだけ立ち上げればいいんですよ!(笑)
コメントを残す