# Internet Service Performance Failure Detection > [!abstract] 概要(abstract の日本語訳) > コンピュータネットワークの複雑さの増大と、それへの依存の高まりは、信頼性要件を強制することをより困難かつより重要にしている。従来の相互接続サービスに加えてウェブや電子メールのようなユーザー指向のサービスまでネットワークサービスが拡大したことは、ネットワークの複雑さの増大とその性能の重要性の増大の両方を確実なものにした。信頼性を高めるための第一歩は、ネットワーク性能障害の早期検知である。本稿では、可能な限り一般的な仮定のもとでの統計モデルフレームワークの適用可能性を検討する。企業のプロキシサーバから得た計測データを用いて、このフレームワークを実世界の障害に対して検証する。これらの実験結果は、障害を検知できることを示すが、いくつかのトレードオフの問題を伴う。その引っ張り合いは警告時間にある。早期警告の兆候を見逃すか、いくつかの誤警告を報告するかのどちらかになる。最後に、障害診断の問題に対する洞察を提供する。 ## 論文情報 - 著者: [[Amy Ward]](Engineering Economic Systems / Operations Research Department, Stanford University)、[[Peter Glynn]](同上)、[[Kathy Richardson]](Western Research Labs, Digital Equipment Corporation) - 発表媒体: Performance Evaluation Review, Vol. 26, No. 3, pp. 38-44 - 年: 1998 - PDF: https://web.stanford.edu/~glynn/papers/1998/WGR98.pdf ## 概要 論文は、ネットワークおよびサービスの性能障害を早期に検知するための統計的フレームワークを提案する。プロキシサーバが単位時間あたりに処理するリクエスト数という単一の計測変数を用い、時間帯ごとの平均・分散から標準化した観測値(Zスコア)が正常範囲を逸脱した時点を障害候補として検知する。さらに、検知した障害の原因を切り分けるため、TCP接続状態別の計測変数(Established・Syn_Sent・Syn_Rcvd)を用いた障害診断についても議論する。 ## 問題設定 - 対象: Digital Equipment Corporation(DEC)社内の全マシンからインターネット接続を中継する2台のプロキシサーバ。1万台超のクライアントマシンを収容し、繁忙時間帯には15分間で30,000〜40,000リクエストを処理する(1日あたり200万リクエスト超)。 - 計測期間: 1997年6月21日から10月12日までの12週間。 - 主計測変数: 15分ごとに処理されたリクエスト総数。 - 障害診断用の補助変数: (1) TCP_IP Established状態の接続数、(2) TCP_IP Syn_Sent状態の接続数、(3) TCP_IP Syn_Rcvd状態の接続数。 - 障害の定義は Maxion & Olszewski [MO90] に従い、「利用者にとって問題となる、期待される動作条件からの逸脱」とする。 - 一般的な観察: リクエスト数は平日の朝に上昇し日中高止まりし夕方に下降するという日内パターンを持ち、休日はこのパターンが弱まる。この傾向は vBNS(MCIのインターネットバックボーン)の計測 [TMW97] とも整合する。日次・週次パターンを除去(de-trend)した後も、連続する時間帯を超えて0.2〜0.3程度の自己相関が残り、これはリクエストサービス時間がリクエスト発生率に影響するため(サービスが速いほど利用者が次のリクエストを速く出す)と考察されている。 ## 提案手法 統計モデルの前提は最小限に絞られている。(1) 過程は一定の時間区間で定常である(同一曜日種別の系列は時間シフトに対して同一分布を持つと仮定する)、(2) 大数の強法則が成り立つ(ある時刻の観測平均が期待値に収束する)。これらはi.i.d.性のような強い仮定を必要としない。 手法は次の4ステップからなる第一段階の手続きとして提示される。 1. 既知の障害が発生していた時間帯の観測をデータ系列から除外する。 2. 残った観測から、各時間帯ごとの計測値の分布を推定する。 3. 各時間帯ごとの平均と分散を求める。 4. 逸脱観測を識別する感度水準を調整する。 ステップ2では、観測が正規分布に従うと仮定する。これは、計測値がある時刻までの処理件数 N(t) であり到着分布が独立同一分布であれば、更新過程に対する Donsker の定理 [Bil68] により大きな時間スケールで N(t) が近似的に正規分布に従うという理論的根拠に基づく。実際には Anderson–Darling検定 [Pet77] によって正規性を確認している。 ステップ4では、各観測値 $X_t$ を、その時間帯の推定平均 $\bar{X}_t$ と推定標準偏差 $\sigma_t$ を用いて $Z_t = (X_t - \bar{X}_t)/\sigma_t$ と標準化する。大きな $t$ に対して $Z_t$ は標準正規分布に近似的に従う。「高すぎる」観測と「低すぎる」観測の双方を考慮する。リクエスト数の急増はサーバ過負荷や不正侵入の兆候になり得る一方、リクエスト数の急減は性能低下(サービス応答が遅くなり結果的に処理数が下がる)を示すため、両者に非対称な閾値を用いる。 さらに、単一観測だけでなく直近N個の観測窓を使う早期警告アルゴリズムも提案する。直近観測 $Z_n$ が「極端に逸脱」していれば直ちに障害と判定し、「中程度に逸脱」または「極端に高い」場合は、直近N期間中の中程度逸脱観測の数が閾値を超えたときのみ障害と判定する。 ## 新規性 - 独立同一分布性のような強い分布仮定を置かず、定常性と大数の強法則という最小限の仮定だけで成立する統計的検知フレームワークを、実運用のネットワーク性能計測に適用した。 - 単一観測に基づく即時判定アルゴリズムと、直近N観測の窓を用いる早期警告アルゴリズムの2種を比較し、検知の早さと誤警報率のトレードオフを定量的に示した。 - プロキシサーバのリクエスト率という単一シグナルによる障害検知と、TCP接続状態別の複数計測変数を組み合わせた障害原因の切り分け(内部要因か外部要因か)を、同一の実運用データセット上で一貫して扱った。 ## 実験設定 - データを前半2/3(訓練)と後半1/3(検証)に分割する。 - 単一観測アルゴリズムでは、訓練データを用いて感度閾値を調整し、逸脱と判定する境界を $Z_i < -2.30$ または $Z_i > 3.00$ に設定した。 - 窓ベースアルゴリズムでは、窓サイズ5・中程度逸脱の閾値超過回数の閾値2を用い、中程度逸脱の基準を $Z_n < -1.96$ または $Z_n > 3.00$ とした(極端逸脱の基準は単一観測アルゴリズムと同じ)。 - 障害診断は、8月26日と8月27日に実際に発生した2件の障害事例を用いたケーススタディとして行われた。 ## 実験結果 - 単一観測アルゴリズム: 訓練データ(前半2/3)で障害の80%を検知し誤警報2件、同一パラメータを検証データ(後半1/3)に適用すると障害の90%を検知し誤警報2件。 - 窓ベースアルゴリズム(窓サイズ5・閾値2): 検証データで障害の90%を検知したが誤警報は3件に増加。訓練データでは障害の87%を検知し誤警報4件。単一観測アルゴリズムより早期に障害を検知できる一方、誤警報が増える。 - 障害診断のケーススタディ: 8月26日は確立(Established)接続数の減少とSyn_Rcvd接続数の減少が障害と同時に生じ、内部ネットワーク問題を示唆した。8月27日はSyn_Sent/Syn_Rcvd比がほぼ一定であり、プロキシサーバ単体の障害を示唆した。プロキシサーバのアプリケーションログから両日ともサーバの再起動(reboot)が発生していたことが確認され、再起動後のキャッシュ再構築中は外部へのリクエスト転送が必要になるためリクエスト処理数が低下することが、観測された障害の一因として説明された。 ## 考察 - 「高すぎる」逸脱と「低すぎる」逸脱の判定基準に非対称性を設けたのは、リクエスト数の急増(過負荷・侵入兆候)と急減(性能低下)がそれぞれ異なる意味を持つドメイン知識に基づく。 - 窓ベースアルゴリズムは早期警告を得られる代わりに誤警報が増えるというトレードオフがあり、「どの中程度逸脱がその後の障害の予兆であり、どれが過程自体の単なる揺らぎか」を見分けることが本質的に難しい問題として残ると論じている。 - 今後の課題として、(1) 15分という計測粒度がネットワーク性能の重要な変動を見逃していないか、(2) 訓練サンプルの期間とその有効期間をどう設定するべきか、(3) 複数の計測変数(スループット・TCP状態別接続数)の時間的な動きを組み合わせて障害診断を自動化する方法、の3点を挙げている。 ## 強み / 弱点・課題 - 強み: 分布に関する強い仮定を置かない汎用的な統計的枠組みであり、企業内プロキシサーバという実運用データと実際に発生した既知障害を用いて検証されている。検知だけでなく障害原因の切り分け(診断)まで扱う。 - 弱点・課題: 検証は単一組織(DEC)の2台のプロキシサーバから得た1つのデータセットに限られる。障害診断は自動化されたアルゴリズムではなく2件の障害事例に対する手作業のケーススタディにとどまる。窓サイズ・閾値・計測粒度(15分)といったハイパーパラメータの選び方は経験的であり、最適な設定を導く方法論は示されていない。早期検知と誤警報率のトレードオフは論文内で解消されておらず、未解決の課題として残されている。