P2P地震情報 開発ログ

気象庁の地震情報・津波予報とユーザの「揺れた!」という情報を共有するサービスの開発記録です。

ここ数日における、サーバの不安定な動作について

 この記事は、掲示板に投稿した内容をそのまま掲載しています。

まずは、ここ数日におけるサーバの不安定な動作によって皆様にご迷惑をお掛けしておりますことをお詫びいたします。

本件についてご説明させていただきますが、これは大変複雑な問題です。不明な点があれば遠慮なくご質問いただいて、どうか正確にご理解いただきますようお願いいたします。

それでは、現象と原因について説明いたします。これは、 p2pquake.ddo.jp サーバを独自調査した結果に基づくものです。

【現象】

 突然、サーバソフトウェアのCPU使用率が100%に達し、応答が無くなります。ただし、1~3分後に自然復帰(または30秒後に監視ソフトウェアによって強制終了)します。

【調査】

・ピア数(処理量)の増加する夜間に発生していますが、発生タイミングは不明でした。

・発生直前のCPU使用率は5~15%前後で、処理能力の不足は認められませんでした。

・サーバが送受信するデータ(パケット)を調べましたが、異常データは認められませんでした。

・(技術的内容)現象発生中、接続要求SYNに対し接続拒否RST,ACKを返していました。ただし、既存セッションのデータ受信に対しては正常な応答ACKを返していました。

・開発環境で実行して現象の発生を確認したため、動作を中断しました。すると「中断箇所の表示なし(記述したコードとは別の箇所で中断?)」「マウス操作が不可能」という状態でした。

【原因】

 以上に基づき、「VB6またはWinsock OCXコントロールに限界があり、処理量が多い時に何らかのタイミングで問題が発生している」と推定しました。

 

次に、現象発生時の問題について説明いたします。

【情報の伝達】

 正常に行えない恐れがあります。現象が継続した場合、各ピアの情報が更新されず「タイムアウト」とみなします。各ピアの接続情報が失われ、P2P地震情報ネットワークは正常に維持できません。よって、情報の伝達が出来なくなる可能性があります。

【ピアの表示】

 異常値になります。接続情報の錯綜が発生し、大幅に少ない・多い値になる場合があります。

【誤情報の伝達】

 発生しません。現象発生中に情報の破壊や欠落が発生することはありません。

 

それでは、今後の対策について説明いたします。

【当面は】

 Winsock OCXの代替コントロールを試験導入し、問題が回避出来ないか調査します。利用者の皆様にご協力いただき、処理量を削減します。

【将来的には】

 プログラミング言語及び通信部の設計を変更し、ソフトウェアの安定動作を図ります。

 

最後に、皆様にお願いいたします。

【PRCP情報共有プラグインの停止】

 お使いにならない場合は、本体オプションのプラグインより「雑談プラグインを使用する」のチェックを外してください。鍵生成・接続制御処理の低減になります。

【(旧)雑談プラグインの停止、IRCサーバへの接続停止】

 お使いにならない場合は、それぞれ停止してください。コネクション維持に掛かるリソース消費の低減になります。

皆様には大変ご不便をお掛けいたしますが、何卒ご理解ご協力をお願いいたします。