たかはしもとのぶです。
2003.02.25 11:00頃〜12:30頃まで、monyo-com のサーバが高負荷により実質
的に停止していました。ただいまは復旧しています。
(1) アクセスができなかった時間帯
2003.02.25 11:00頃〜2003.02.25 12:30頃まで
(2) 原因
昨日より、以下の URL
http://damedame.monyo.com/?date=20030221#p07
へのアクセスが輻輳していることに加え、毎時 0 分に「なつみかん」など
非常に CPU を使用するソフトウェアが自動実行されたことによる CPU の過
負荷が原因により、上記 URL へのアクセスを処理する多数のプロセス(ruby
のスクリプト)が滞留し、結果としてプロセステーブルが枯渇してしまうこ
とが原因と推定。
(3) 対応
ルータの設定を一時的に変更し、ayaka.monyo.com の 80 番ポートへのアク
セスを一時遮断し、ある程度負荷が下がりログインが可能になった時点で、
ログインの上、設定を変更して再度 80 番ポートを解放。
(4) 経緯
2003.02.25 11:30頃
サーバにアクセスできないことを確認
ssh 経由で接続しようとしたが、タイムアウトで接続できず。
Apache などが動作しているらしいことは確認。
2003.02.25 11:40頃
ルータの設定を変更し、ayaka.monyo.com のポート 80 への通信を遮断
# その後 kitaj さまのところに対処策を聞きにいく。
2003.02.25 12:05頃
ログインに成功。httpd.conf の以下の設定を変更する。
MaxClients 150 → 10
「なつみかん」などの自動機能を一時停止するように設定変更を依頼
負荷軽減のため、tdiary の ruby スクリプトを mod_ruby で起動するよ
うに設定を行うが、途中で挫折
2003.02.25 12:25
ポート 80 への通信を再度解放
2003.02.25 12:30
CPU 使用率が 50% 程度、ロードが 2.x 程度だったため、httpd.conf で
MaxClients 10 → 12
Timeout 300 → 60
のように変更
2003.02.25. 12:35
CPU 使用率 80% 程度、ロード 3.x 程度で安定していることを確認
(5) 今後
現状のトラヒックを支えるには、マシンパワーが不足していることは明白な
ため、以下の対処を行う予定です。
o CPU 交換
Pentium II 233MHz → Pentium III 500MHz
o メモリ増設
64MB → 192MB
o NIC交換
歴史的経緯により、現在 ayaka.monyo.com では ISA バスの 3c509 を使っ
て通信が行われています。その一方で本体内蔵の Intel EEpro は使われ
ていません。
そのため、3c509 の使用を止め、Intel EEpro の方を利用するように変更
します。
o mod_ruby の導入
ruby を別プロセスで起動する代わりに、Apache 内部で動作させることで、
負荷を軽減します。
とりあえず、明日早朝にハードウェアの交換を行う予定です。
-----
TAKAHASHI, Motonobu (たかはしもとのぶ) monyo@home.monyo.com
http://www.monyo.com