2023年11月28日火曜日

サーバーを落とした話 - 118.6kg

 ネットでこんな記事を見付けました。

僕の自作ツールが大学のサーバーをダウンさせてしまった日の話

ずいぶんと昔の事になりますが、私が最初に作ったweb系のシステムは、社内で外電写真を閲覧し、出稿するシステムでした。メーカーに作らせた画像集配信システムがあったのですが、外電写真の入信枚数が急速に増え、設計時の想定を大幅に超えてしまい、システム障害が頻発したため、外電写真は別のシステムで受け、必要な写真だけを出稿するシステムを自社で作ろうという事になって作ったシステムです。なんだかんだで実質的に自分一人で作り上げ、我ながら、よく頑張ったなと思います。メインのユーザから、使い勝手が良いとの評価を頂き、出来上がった後、しばらく廃人の様になってしまったものの、報われた様な気分でいる事が出来ました。また、このシステムを導入する事で、メインの集配信システムは安定し、プリンタの出力枚数を減らすことが出来たため、毎週の様にプリンタが故障し、修理に出すという作業が皆無になり、管理業務も大幅に楽になりました。また、それまで外電写真を印刷した裏紙が社内のメモ用紙として秘書室などでも流用されていたのが一気に無くなり、編集以外の部署でも変化が出ているという話を聞いた時には、私もちょっとびっくりしました。

当初予定していたユーザーは、写真部と外信部の担当デスクくらいに思っていたのですが、写真部では外電写真は質が高いので見ていて勉強になるといって、一般の部員も多く見る様になり、その他、社内の外電写真には関係なさそうな部署でも見られる様になっていきました。確かに、AP,Reutersから送られて来る写真は見ていたいと思う写真が沢山あります。ただ、その程度の負荷ではシステムに支障は発生しませんでした。

ところが、ある時期から特定の時間帯になるとサーバーが起きる事態が頻発する様になりました。再起動すると問題無く復旧するので、なかなか原因の特定が出来ませんでした。ただ何度も起きると原因の究明と対策が必要なので、必死になって原因を探りました。こういう時は、メーカー製のシステムだと障害を報告すれば調べてくれるのですが、自社開発だとそうは行かないので大変です。で、見つかったのが、webのaccess.logに記載された異常でした。サーバがダウンする直前に同一のクライアントから秒間何十回というリクエストが来て、その後、サーバが落ちている事が分かりました。そしてその発信元を辿っていくと、業務上、外電写真とは関係のない部署の人が、趣味で外電写真を眺めていて、仕事がひと段落した所で席を立つのですが、その際、手に持っていた紙をキーボードの上に置き、右下にあるテンキー部のENTERキーを押し続けた状態になり、オートリピート機能が働き、大量のリクエストが発生し、サーバが落ちていた事が分かりました。

まあ実行犯の人は悪意は無く、ただ行動がルーズだっただけ強く責める事も出来ず、クライアントが1秒に1回以上リクエストを出さない様に、JavaScriptを書き換えて対応しました。

上の記事とは、サーバを落とした側と、落とされた側で立場が逆です。ただ原因を作った人が名乗り出てくれたというのは羨ましい限りです。正直に名乗り出てくれるのは本当に助かります。異常なログを見付けて、何が起こって、この様なログが出力されたのかを考えるのはとても大変です。大量のリクエストが来ている事から、関係ない部署の人が席を立つ時、キーボードに物を置いて、オートリピートが働いたのではないかと直感的に想像できる人は、そういませんからね。

まあ今となっては、懐かしい思い出です。

0 件のコメント:

コメントを投稿