System.TimeoutException
どんなエラー?
操作が割り当てられた時間を超過した状態。Webだと、リクエスト投げてレスポンスが規定の時間に帰ってこなかった状態(※1)。サーバーの内部処理で時間がかかったのかもしれないし、DBの返答が間に合わなかったのかもしれない。理由は様々だが、今でも「3秒ルール(※2)」は変わらないから、最低限のチューニングは必要になる。
※1 セッションタイムアウトではない。
※2 床に落ちた食べ物の話ではない。直帰率の話。表示が遅いサイトをユーザーは待ってなどくれない。同じような情報はいくらでも転がっている。
対応方法
タイムアウトのケース分けから始めるのがいいだろう。ボトルネックが判明しないままに、「怪しい箇所を修正」はやってはいけない。エンジニアは探偵じゃないんだから、怪しい箇所なんてどうでもいい話。必要なのは、再現方法の確定と、根本原因の修正だ。船頭多くして船山に上るじゃないけど、探偵もどきエンジニアがチーム内に多ければ多いほど、斜め上をいった対応が行われてしまう。
ハードが悪いのか。ネットワークが悪いのか。ミドルウェアが悪いのか。ソフトウェアが悪いのか。そこからさらにブレイクダウンして深堀をしていくのが、遠回りのように見えて実は近道だったりする。
タイムアウトのような、抽象的なエラーは注意したいところだ。
コメントを残す