Service Temporarily Unavailable 503エラーが頻発して困った話

このサイトではないのですが、あるサイトを運営していたときの事です。
1日のアクセスが1万PVを超えたあたりからService Temporarily Unavailable 503エラーが頻発するようになり、ページが表示させるまで時間がかかるようになりました。
wordpressで作成したサイトだったのですが、wordpressで記事を更新しようとする段階でも重たい状態で記事を更新することが億劫になるぐらいでした。

恐らく503エラーとwordpressが重たい状態は同じことが原因にあると考えたので、503エラーを回避するように色々調べはじめました。

そもそも、503エラーの意味とは?

503エラーとは一時的にサーバーにアクセスすることができず、利用不可能な状態になっていることを表しています。原因としては、サイトに多数のアクセスがなされ、サーバーで処理することができなくなった場合、サーバーがメンテナンス中で機能していない場合、サーバー内のデータ転送量が規定容量を超えた場合等が考えられます。

対処法として、キャッシュを利用して転送量を少なくしたり、転送速度を上げることでした。
あまりサーバーに負荷がかからないようにサイトを運営していけばいいということですね。

503エラー回避のために実施した内容

まず、サイト表示を高速化できるいくつかのプラグインをインストールしてみました。
最初にインストールしたのは、「WP Super Cache」です。
このプラグインはキャッシュ処理を行い、サイトの表示速度を向上させるプラグインです。

次に「Lazy Load」というプラグインをインストールしました。
「Lazy Load」はページ上のスクロールに応じて、画像データの読み込みを発生させるプラグインです。
通常であれば、ページ上のすべての画像を読み込んでからページを表示させることになりますが、「Lazy Load」のプラグインを利用するとスクロールに応じて画面に表示されるべき画像を読み込むようになるので、ページの表示を高速化させることができます。

最後にインストールしてみたプラグインは「EWWW Image Optimizer」です。
サイトに表示される画像を圧縮してくれるプラグインです。
サイトに表示させる画像の容量が軽くなるので、より速くサイトを表示させることができるようになります。

とりあえず、この3つのプラグインをインストールして様子を見ることにしました。
が、全く改善の兆しが見えません。

503エラーの解決策

さらに調べてみると「wordpress popular posts」という人気記事を表示させるプラグインがあるのですが、このプラグインはサーバーに負荷かけることがあるという記事を発見しました。

私が運営していたサイトでは賢威というテンプレートの人気記事表示のプラグラムを利用していましたが、もしかして同じ理屈で人気記事表示のプログラムがサーバーに負荷をかけているのではないかと思いました。

とりあえず、賢威の人気記事表示プログラムをサイト上から外してみました。
結果は、なんと目に見えてサイトの表示速度が向上しました。恐らく「wordpress popular posts」と同様に賢威の人気記事表示プログラムもサーバーに負荷をかけていたのだと思います。

これが今回私が503エラー回避のために実施した内容になります。

今回のケースでは賢威のテンプレートを利用しているという点で特殊なケースだと思いますが、参考になれば幸いです。