一度に沢山頼むと誰だってウワー!ってなるお話
はじめに
今日は先日書いたAPIサーバのメンテナンスの日でした。
RAIDが壊れていたので、HDDを交換して再構築しました。
そこで事件が起こった
APIのタイムアウト設定が長すぎて
Connect出来ずにアホみたいに待ち続けるサービス。
そのAPIが使われているページが全てタイムアウト待ちで
非常に重くなった\(^o^)/
だが、しかーし!
運良くホットスワップ機能付きの賢いサーバだったので、急遽サーバを立ち上げ、サービスを再開させて
再構築をするようにしました!!( ゚Д゚ノノ☆パチパチパチパチ
だけども、だっけっど
既にタイムアウト待ちの状態でサイトにつながりにくい状態だったので、
更新を繰り返す人たち!
せっかくサーバが立ち上がっても全然パフォーマンスがでない!!
結果
再構築が終わりCPU利用率が通常に戻っても、通常のパフォーマンスが全くといっていいほど出ない。
再構築が終わった瞬間にサーバ落ちる。
踏んだり蹴ったり!
対応
取り敢えず少しでも負荷を下げようと、APIとして使ってるサーバでめっちゃリクエスト投げてきてるサービスを
キャッシュ使うようにした。
これでアクセスが約4分の1に抑えることが出来た。
*けど何も改善されなかった。
必至にアプリケーションのソースコードを長め改善しまくる
*相変わらず変わらない。FTPが繋がりにくく、挙句ソースコードが消滅する。
コンソールとにらめっこする。
やたらeth0のエラーが多い
*約10%程度のエラー率
まさか、復活したサーバに喜んで問合せしまくってきたAPIリクエストのせいで
NICが馬鹿になったんじゃねぇの!?
と言いながら再起動。。。。。
つながった\(^o^)/
まとめ
- いきなりまとめて色々頼むと誰だってバカになる。
- バックアップはきちんと取りましょう。
- サーバダウンにおける被害状況はきちんと把握しておこう。