ウェブサーバー監視システム「OASEYE」
いま「SINoALICE ーシノアリスー」がちょっと話題ですね。想定数以上のユーザーが接続してきているみたいで、サーバーがちょっと大変になってるみたいで。これも人気の裏返しなんでしょうけど、運営さんには頑張って頂きたいと思ってます。今回はそれに関連したちょっとした小話をば。
さて。
「OASEYE」
タイトルにもあるこれが何かと言いますと、ウェブサーバーの監視アプリなんですよね。えぇ、17年程前に作った自作アプリです。左がモジュールのアイコンで右がタスクトレイのアイコンです。怖い・・・。
御察しの通り、アイコンとしてはBrynhildrの礎ですかね。自分も忘れてたんですが、右の目玉はまばたきします。先日、昔に勤めていた会社の先輩から聞いて思い出しました。ここにBrynhildrの原点があったのだと。
17年程前、某ウェブサイトオープンのプロジェクトに入りまして、ウェブサーバーの担当にあいなりました。ウェブサイトの担当ではなくて、物理ウェブサーバー(すんごいの4台)の担当です。OSはWindowsNT4.0で「Oracle Application Server(OAS)」のHTTPサーバーでした。バージョンは「8i」です。分かる人はこの時点で震え上がる構成です。構成はもう既に決まってましたんで。
ちなみに、このHTTPサーバーだけで256万円です。Apacheなら0円です。OASって高いんです。えぇ凄く。
ちなみに、担当したバージョンのHTTPサーバーはOracle製で、次バージョンのHTTPサーバー「Oracle HTTP Server」がApacheベースです。察してください。色々と。
で。
このOASのHTTPサーバーが曲者でして、どんなにチューニングしても一定時間(短くて数分、長くて1週間くらい)でHTTPサーバーが落ちます。その環境では絶対に落ちます。HTTPサーバーが落ちるとウェブサイトが表示できません。当たり前ですが。Oracleに問い合わせたらOEMなんで原因不明との事。ぐぬぬ。
えー、先述した通りHTTPサーバーは4台構成でして、1台くらい稼動してなくても他のHTTPサーバーで何とかできるんですが、連鎖的に落ちるとアウトなんで落ちそうになったら何とかせねばならんとゆー予定外のミッションが発動したワケです。
原因が謎でしたんでHTTPサーバーが落ちたらOSごと再起動とゆー案も出たんですが、再起動に時間がかかるのとOS起動中に止まったらさらにアウト(気軽にサーバーのスイッチポンとゆー環境じゃないです)とゆーリスクもあって、何とかHTTPサーバーだけ再起動させる方式に。ウェブサーバーには、HTTPサーバーとは別にApplicationサーバーも稼動してたんで、正常に動作してるそっちへの影響も懸念したんで。ウェブサーバーのダウンタイムを最小限にするんやとゆーミッションですね。
で、HTTPサーバーだけを再起動する事は何とかできたですが、落ちる時は連続で落ちるので、定期的に再起動させる事も難しかったワケです。ま、HTTPサーバーのプロセスを見てるとメモリ周りがちょっとアレでしたんでプロセスの内部がアレなんじゃないかとは思ってましたけど。
で、試行錯誤の末、HTTPサーバーが落ちる事を予測できるようになりまして、落ちそうになったらHTTPサーバーを再起動するとゆーアプリを作る事にしたんです。
それがこのアプリ「OASEYE」なんですよね。
こいつのおかげでウェブサーバーのダウンタイムが減りまして(正確には落ちてますが)、ミッション完遂とゆー事でめでたしめでたしと。
で、ウェブサイトのオープン当日。公開時刻になった瞬間に5万人もの接続がありまして、自分の担当のウェブサーバーは4台とも無事でしたが、後ろに控えていた2台のデータベースサーバーが即座にダウン。再起動してもすかさずダウン。何度やってもダメ。結局、数時間の緊急メンテナンスになりました。まさにそんな状態がシノアリスでは起こってるんでしょうねぇ。大変だと思います、えぇ。でもいずれ良い経験になると思いますので頑張ってくださいませ。
つー事で懐かしのアプリをちょっとひっぱり出してみた次第でございます。
現場からは以上です編集長。