# Infrastructure Management Timescales [[Mark Burgess]] が自身のウェブサイトに掲載した、インフラ管理におけるタイムスケール理解の重要性を論じた短い技術エッセイ(2014-11-17)。副題は "How to avoid wasting your time in infrastructure"。 ## 要旨 タイムスケールを理解すべき理由を2つ挙げる。第一に、何かを理解するにはどれくらいの頻度で観測すべきかという**サンプリングレート**の問題(Nyquistの定理)。第二に、何かが約束(promise)を守れなくなったときに、どれくらいの速さ・頻度で介入すべきかという**是正速度の一致**の問題(Shannon誤り訂正定理・Burgess Maintenance Theorem として引用)。 タイムスケールの分離度合いは系全体の結合強度(coupling strength)の指標になる。良い分離は弱結合を意味し安定に資するが、分離が悪いと強結合となり脆弱性・不安定性につながる。 ### KT境界(kernel-thought boundary) Burgess は「KT境界」という概念を提示する。これは人間がもはや関与できなくなる限界線であり、身体・脳の処理速度がそれ以上速い現象には追いつけないことを表す。多くのプロセスは人間の思考が働く1秒スケール付近に集中する(部分的偶然だが、多くの処理速度が年々高速化しているため)。あるタイムスケールが別のタイムスケールを制約する例として、システムの起動時間が新規サーバーのスケールアウト速度の上限を規定することが挙げられる。 ### Dynamics always trump semantics Burgess の中核テーゼは「力学は常に意味論に勝る(Dynamics always trump semantics)」である。ソフトウェア業界は意味論的な(semantic)問題を解決する発明は得意だが、その問題を引き起こす**力学的過程**(dynamical process)そのものを調査・整合させることはほとんど試みない。 具体例として、エラスティックスケーリング(Web トラフィックはミリ秒スケールで変動)を伝統的な構成管理プロセス(CFEngine のエージェント・Puppet・Chef など、分スケールで動作)で解決しようとするのは、意味論的には筋が通っていても力学的には無理がある、と指摘する。「同じプロセスの中に、分・時間・日を扱う処理と、秒未満を扱う処理を同居させようとしてはいけない。タイムスケールに沿ってエージェントを分割し、アーキテクチャを設計する必要がある」。 ### 監視アラームの不一致という典型例 最も分かりやすい失敗例として監視アラームを挙げる。マイクロ秒スケールでデータを収集するプロセスのエラーが、分〜時間スケールで応答する人間(ポケベル持ちのオペレータ)にそのまま渡され、単発の一括対応(bulk remedy)を適用してまた再発を待つだけになる。「このマイクロ秒レベルの不一致こそ修正すべきだ」と述べる。同様に「人間が消化できるより速く起きる何かを、従来の意味で『監視』することに意味はない(閉ループのフィードバックである場合を除く)」とし、監視は自動化への置き換えを要求するタイムスケールの指標であるとする。 ### CFEngine 自身の進化にみるタイムスケールの高速化 単純な収束プロセスでさえ、毎時チェックから CFEngine の2.5分チェックへと高速化してきた歴史があり、現在のコンテナ管理は秒オーダーの保守を要求する。そのため単一の巨大なエージェント(モノリシックエージェント)で全てをこなすのはもはや得策ではなく、ハイパーバイザー・ファイルシステム・カーネルに機能を埋め込む方向(systemd がその一例)へ向かうべきだとする。 ### キューイング問題としての一般化 タイムスケールの不一致は基本的なキューイング問題(queueing problem)として捉えられる。「キュー内のサービス時間は、タスクの到着間隔より短くなければならない」。タイムスケールは、いつ自動化を導入して人間の限られた能力を拡張すべきかを教えてくれる指標である。 ### コストとトレードオフ より小さなタイムスケールで動作するほど、システムリソースと人間の認知資源のコストは増す。「監視される鍋は煮え立たない(the watched server doesn't boil)」——これが `sleep()` が発明された理由だとし、より詳細に見るべきだという要求は際限がなく、均衡は「勝てない軍拡競争(arms race)」であると結ぶ。最後に、業界には現代版の「コンピュータメトリクスの体系的研究」の更新が必要だと提言する。 ## 関連 - エンティティ: [[Mark Burgess]] - 概念: [[タイムスケール分離と監視粒度]] / [[アラート疲労]] / [[制御ループの安定性とタイムラグ補償]] ## 出典 - Mark Burgess, "Infrastructure management timescales", markburgess.org, 2014-11-17. https://markburgess.org/blog_timescale.html