一度に沢山頼むと誰だってウワー!ってなるお話

はじめに

今日は先日書いたAPIサーバのメンテナンスの日でした。

RAIDが壊れていたので、HDDを交換して再構築しました。

そこで事件が起こった

APIタイムアウト設定が長すぎて
Connect出来ずにアホみたいに待ち続けるサービス。

そのAPIが使われているページが全てタイムアウト待ちで
非常に重くなった\(^o^)/

だが、しかーし!

運良くホットスワップ機能付きの賢いサーバだったので、
急遽サーバを立ち上げ、サービスを再開させて
再構築をするようにしました!!( ゚Д゚ノノ☆パチパチパチパチ


だけども、だっけっど

既にタイムアウト待ちの状態で
サイトにつながりにくい状態だったので、
更新を繰り返す人たち!


せっかくサーバが立ち上がっても全然パフォーマンスがでない!!

結果

再構築が終わりCPU利用率が通常に戻っても、
通常のパフォーマンスが全くといっていいほど出ない。

再構築が終わった瞬間にサーバ落ちる。

踏んだり蹴ったり!

対応

取り敢えず少しでも負荷を下げようと、APIとして使ってるサーバで
めっちゃリクエスト投げてきてるサービスを
キャッシュ使うようにした。

これでアクセスが約4分の1に抑えることが出来た。
*けど何も改善されなかった。

必至にアプリケーションのソースコードを長め改善しまくる
*相変わらず変わらない。FTPが繋がりにくく、挙句ソースコードが消滅する。

コンソールとにらめっこする。
やたらeth0のエラーが多い
*約10%程度のエラー率


まさか、復活したサーバに喜んで問合せしまくってきたAPIリクエストのせいで
NICが馬鹿になったんじゃねぇの!?

と言いながら再起動。。。。。



つながった\(^o^)/


まとめ

  • いきなりまとめて色々頼むと誰だってバカになる。
  • バックアップはきちんと取りましょう。
  • サーバダウンにおける被害状況はきちんと把握しておこう。