星野光公式ブログ

*

サーバーがダウンした時

      2019/07/30

2019年7月21日、京都アニメーション放火事件のスタッフ安否情報を載せた記事をアップロードしたところ、たくさんの訪問者が殺到し、サーバーが停止しました。当初、アクセス・カウンターの数値から1500人から2000人程度の訪問者数と考えていましたが、アクセス解析(Awstats)を見たところ、訪問者数は約3万人で、閲覧数は約11万でした。

ちなみに、Count per Dayでは、訪問者数3361、閲覧数3492でした。

あまりにも違うので、びっくりしました。

いったいどれが本当なのやら・・・。

いや、どれも本当でしょう。問題は何を数えたのかでしょう。

個人的な印象としては、昔からの画像タイプのアクセス・カウンターやCount per Dayが一番現実に近いような気がします。しかし、その一方で、Awstatsはサーバーに残されたログを解析しているので、サーバーとしてはそれだけのアクセスがあったことになります。

どれが現実に近いのかわかりません。ただ、これだけのアクセスがあると、サーバーがダウンすることもあり得るという点だけは覚えておいた方がいいと思います。

サーバーダウンの状況ですが、こういう場合には、サーバーが完全に停止し、アクセスしても500または503を返されるだけという場合と、アクセスはできるが、非常にゆっくりとしかサイトが表示されないという場合の二通りがあります。これはサーバー会社の方針で決まります。今回は、非常にゆっくりと表示されるという状況になりました。完全に止まるよりも少しはましですが、事実上、表示されないというのに近いです。

こちらで行った対応ですが、まずリソースを食っている状況の分析を行いました。これについてはサーバー会社へ依頼してデータを取得しました。何やらPHPのプロセスがずいぶんリソースを食っている様子でした。

途中は省略しますが、ばたばたやって、下記の状況になりました。

私が自分で取得した情報ですが、サーバー停止時、cPanelのCPU and Concurrent Connection Usageをクリックすると出てくるResource Usage OverviewのDetailsではこんな結果になっていました。これは翌日取得したものです。

水色のところがサーバーがダウンした時を示します。ダウンしまくっていますね。

さて、そうしている間に、アクセス・カウンターが表示されなくなり、どうやらアクセス・カウンターのログファイルが破壊されたようでした。アクセス・カウンターは、ほぼ同時にアクセスされると、ログが破壊されます。これが起きたようでした。

そこで、まず、キャッシュ・プラグインをダウンロードし、有効化しました。最初はWP Super Cacheを使いましたが、すぐにLiteSpeed Cacheに変更しました。

次いで、アクセス・カウンターを他のサーバーに移転しました。さらに、WP Post-Viewというアクセス・カウンターのプラグインを削除しました。かつ、各プラグインを更新し、最新版にしました。

結局、このサーバーに残されたプラグインは下記の二点になります。

Count per Day

WordPress Popular Posts

これでかなりサーバーへの負荷が減り、CPU使用率が100%になっていたのが、最大で16%から12%程度にまで減少しました。

こういう事態を想定して、普段から、いらないプラグインは削除したり、キャッシュプラグインを有効化しておくのがよいと思います。

ちなみに、このアクセスが増大して、サーバーがダウンした際に、ハッキングの試みらしいものを検知しました。女だと思ってなめられたのかな。アクセスが多くなり、サーバーがダウンするような状況だと、そういう怪しい試みもされてしまうようなので、お気をつけ下さい。

とりあえず、.htaccessでアクセス可能なIPを指定して、排除してやりました。こういうのもサーバーへの負担軽減になりますので、ぜひ実行した方がいいでしょう。

追伸(2019年7月26日0:36):
広告を貼っているので、ずいぶん広告収入が得られたと思う人もいるかもしれませんが、クリック率は0.17%(600人に一人がクリック)で、合計700円の収入。サーバー代も出ていません。これぐらいなら本業で稼ぐと30分もかかりません。また、クリック単価が30円以上あったのが、6円まで低下しました。つまり、前は1回クリックで30円以上の広告収入だったのが、大量のアクセスが来たら、1回クリックで6円にまで落ちてしまったということです。これは痛いです。大量のアクセスをさばくために、サーバー会社からもっとお金のかかる上位プランに移行するかどうか聞かれました。普段、ほとんど誰も来ないブログですから、もう少しお手柔らかに・・・。

人が来ないブログを書くのが得意な私としては、今回のサーバーダウンは、勉強にはなりましたが、踏んだり蹴ったりでした。

 - ウェブ技術