Wordpressが急に激重になって散々調べた結果、まさかのアイツが原因だったのかと…
何の前触れもなく遅くなるサーバー
最近、サイトのページ表示がやけに遅くなったのでサーバーにログインしてTopコマンドを叩いてみると、ロードアベレージが通常0.2とかぐらいなのに、6とか表示されている。
ロードアベレージはだいたいCPUのコア数を下回らないといけなくて、A-tak.comのサーバーは3コアなので完全に異常事態。エマージェンシー!
経緯を見てみる
muninというサイトの負荷状況をグラフで表示してくれるLinuxのツールを使って確認してみると…
…なんか10月14日の1時から急に負荷が上がりまくっている。
原因を調べる
Apacheを停止すると負荷は下がる。立ち上げると負荷が上がる。
間違いなくApacheで動いている何かが原因なので、怪しいのはプラグイン。試しにWordPressのプラグインを止めてみても負荷はおさまらないので、プラグインのせいではない(…とこの時は思っていた)。
CPUが何に時間を取られているかを見る為のグラフ。黄色はアイドル状態を示している。急に紫色の部分が広がっている。紫はIO Wait、ようするにディスクが読み書きするのを待っている時間が大半を占めてしまっている。こりゃおかしい。
犯人はiThemes Security プラグイン
もしやと思い、すべてのプラグインを「止めた後」にApacheを再起動してみると、負荷が上がらない!
そして、一つずつプラグインを有効にして試していったところ「iThemes Security」というプラグインを起動すると負荷が上がることが判明。
しかも、こいつは一度負荷が上がると、それからプラグインを止めても裏で何かしら処理が続いているようで、Apacheを再起動するまで負荷がおさまらないことが分かった。
iThemes Pluginは以前もMarsEditでの投稿をブロックしたりといろいろ不具合を起こしていたので、この期を際に削除することにした。
しかし、なんで14日の1時ちょうどに重くなり始めたのだろう。もしかしたらこの時にプラグインのアップデートをたまたまやってしまっていて、アップデートに問題があったのかもしれない。
今後WordPressが重くなったら、プラグインをオフにしてWebサーバーを再起動して一つずつプラグインを有効にして様子を見るのが良さそうです。