# 計算機システムのフィードバック制御 ## 定義 計算機システムのフィードバック制御とは、計算機システムの資源管理(資源利用率・応答時間・スループットなどの調整)を、古典的な制御理論の枠組み——測定出力・制御入力・コントローラ・外乱入力・目標値入力からなる閉ループ系——として定式化し、その安定性・精度・応答特性を体系的に分析・設計する取り組みである。待ち行列理論が計算機システムの定常特性(steady-state properties)を扱うのに対し、この枠組みはワークロードや構成の変化に対する過渡応答、すなわち動特性(dynamics)を対象とする。measured output(測定出力、例: CPU利用率・応答時間・スループット)を用いて control input(制御入力、例: バッファサイズ・スケジューリングポリシー・並行度を左右するパラメータ)を調整し、外部から指定された目標(reference input、目標値入力)を達成する。measured outputがcontrol inputの決定に使われ、control inputが再びoutputに影響するため、この構造をフィードバック制御または閉ループ制御(closed-loop control)と呼ぶ。(Source: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 1 Introduction and Overview]] §1.1) ## 制御系の構成要素 フィードバック制御系は次の要素で構成される。 - **目標値入力(reference input)**: 測定出力が達成すべき望ましい値(setpoint)。 - **制御誤差(control error)**: 目標値入力と測定出力の差。 - **コントローラ(controller)**: 現在・過去の制御誤差から制御入力の設定値を計算する要素。 - **制御入力(control input)**: 対象システムの挙動に動的に影響を与えられるパラメータ(例: Apache HTTP Serverの`MaxClients`)。 - **対象システム(target system)**: 制御対象の計算機システム。 - **外乱入力(disturbance input)**: 制御入力が測定出力へ与える影響の仕方を変化させる、制御不能な要因(例: バックアップやウイルススキャンなどの管理タスク)。 - **測定出力(measured output)**: 対象システムの測定可能な特性(例: CPU利用率、応答時間)。 - **ノイズ入力(noise input)**: 測定出力そのものを変化させる要因(センサノイズ・測定ノイズ)。 - **トランスデューサ(transducer)**: 測定出力を目標値入力と比較可能な値へ変換する要素(単位変換・遅延・移動平均フィルタなど)。すべての系がトランスデューサを持つわけではない。 この循環的な情報の流れがフィードバック制御(閉ループ制御)という呼称の由来である。制御目標は、目標値入力に測定出力を近づける**定値制御(regulatory control)**、外乱入力の影響を抑える**外乱抑制(disturbance rejection)**、測定出力の最良値を追求する**最適化(optimization)**の3種類に大別できる。サービスレベル合意(SLA)・サービスレベル目標(SLO)の達成はしばしば定値制御問題に帰着し、SLOの評価対象メトリクスが測定出力に、SLOの基準値が目標値入力に対応する。(Source: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 1 Introduction and Overview]] §1.1, §1.2) ## 開ループ対閉ループ 閉ループ(フィードバック)制御の対義語は**開ループ制御(open-loop control)**、別名**フィードフォワード制御(feedforward control)**である。開ループ制御は測定出力を制御入力の決定に用いず、目標値入力(および外乱入力)から制御入力を決定論的に計算する。対象システムが安定であれば開ループ系も安定になるという利点がある一方、正確な対象システムモデルを要し、外乱・ノイズに適応できない。閉ループ制御は逆に正確なモデルを要さず外乱に適応できる代わりに、設計を誤ると不安定化しうる。実務では正確な対象システムモデルを得ることがほぼ不可能なため、開ループ制御は単純さと安定性の利点にもかかわらずまれにしか使われず、計算機システムの制御は主に閉ループで構成される。(Source: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 1 Introduction and Overview]] §1.4) ## 計算機システム特有の難しさ 計算機システムへ制御理論を適用する際には、次の3つの課題領域がある。(1) フィードバックコントローラを評価する基準(SASO特性: 安定性・精度・整定時間・オーバーシュート、詳細は [[SASO特性]])の策定。(2) 対象システムとコントローラのモデル化——離散時間か連続時間か、ファーストプリンシプル(既知の物理法則からの導出)かブラックボックス(統計的手法による入出力関係の推定)か、出力飽和(例: 利用率が0〜1に収まる)・入力飽和(例: `MaxClients`が最低1以上)といった非線形性の扱い、確率的挙動の扱い、をそれぞれ判断する必要がある。(3) コントローラ自体の設計。 計算機システムは、機械システムにおけるニュートンの法則のような汎用的なファーストプリンシプルをほとんど持たない(例外は「フロー保存則」程度)ため、統計的手法で入出力関係を推定するブラックボックスモデルが実務上重視される。また、離散時間モデルは計算機システムの測定が離散的に得られる性質と整合し、計算機科学コミュニティにとって概念的に理解しやすいという理由で、制御理論の教科書が通常出発点とする連続時間モデルよりも本書では優先される。(Source: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 1 Introduction and Overview]] §1.7) ## 横断的知見 - **フィードバック制御の「外乱に適応できる」という第1章の利点は、第8章で「定常偏差ゼロは保証しない」という限定つきの利点に修正される**: 第1章は開ループ制御に対する閉ループ制御の優位性として「正確な対象システムモデルを要さず外乱に適応できる」ことを挙げるが、第8章の最も単純なフィードバック制御則である比例制御は、外乱を検知して制御入力を調整すること自体はできても、その調整の結果として残る定常偏差(ess)をゼロにはできない。IBM Lotus Domino Serverの例(§8.1)でも、外乱d(k)=20の印加後にy(k)は新しい定常値に収束するが、目標値rss=10には一致しない。すなわち閉ループ制御は「外乱の効果を有界に保つ」ことは保証するが「外乱の効果を完全に打ち消す」ことは比例制御という具体的な制御則の性能限界に依存する——第1章の抽象的な優位性の主張は、第8章で制御則ごとの性能差として相対化される。(Source: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 1 Introduction and Overview]], [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 8 Proportional Control]]) - **比例制御の構造的限界(u(k)=KP e(k)ではe(k)=0のときu(k)=0)が、第1章の定値制御(regulatory control)の定義そのものに緊張をもたらす**: 第1章は定値制御を「測定出力を目標値入力に近づける」制御目標として定義するが、比例制御という具体的な実装では、制御誤差がゼロに近づくほど制御入力そのものもゼロに近づくため、外乱や目標値変化が存在する限りe(k)=0の状態を維持できない(維持しようとするとu(k)=0になり外乱を打ち消せなくなる)。この構造的な自己矛盾は、定値制御という目標を達成するには比例制御以上の記憶を持つ制御則(誤差の過去の累積を保持する積分項)が要ることを示唆しており、第9章の積分制御の必然性を第1章の定義レベルまで遡って基礎づける。(Source: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 8 Proportional Control]] §8.1, §8.6) - **第1章が課題として名指しした「線形・決定的・時不変」という単純化(§1.7)は、第2〜10章では前提として保持されたまま解消されず、最終章(第11章)まで持ち越されて初めて正面から緩和される**: 第1章は計算機システムへ制御理論を適用する際の課題領域として、対象システムのモデル化における非線形性(出力飽和・入力飽和)・確率的挙動の扱いを挙げる(§1.7)。しかし第2〜10章の分析・設計手法(Z変換・伝達関数・状態空間モデル・比例/PID制御・状態空間フィードバック)はいずれも線形・決定的・時不変系を前提とする。第11章冒頭は「現実世界のシステムはほぼ全て非線形・確率的・時変であるにもかかわらず、線形・決定的・時不変モデルが実務上有効に機能してきた」という第2章の原則(「すべてのモデルは誤っているが、一部のモデルは有用である」)を根拠に、この単純化がそれまで正当化されてきたことを認めたうえで、非線形性・時変性への対応にはゲインスケジューリングと自己調整レギュレータ([[適応制御]])、確率性への対応には最小分散制御、モデル構築のファーストプリンシプルによる裏づけには流体流近似、線形モデルの前提を超えた最適化にはファジィ制御という5つの技法を割り当てる。すなわち第1章が課題として提示した仮定の緩和は、本書の構成上、最終章にまとめて先送りされている。(Source: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 1 Introduction and Overview]] §1.7, [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 11 Advanced Topics]] §11.1) - **ゲインスケジューリングと自己調整レギュレータはいずれも「実行時にコントローラパラメータを変える」適応制御だが、その代償として第8章の極配置設計が前提とする「単一の固定された対象システムモデル」という枠組みそのものを揺るがす**: 第8章・第10章の極配置設計は、対象システムのモデル(a, bなどのパラメータ)が既知かつ固定であることを前提に、望ましい閉ループ極からコントローラゲインを逆算する。第11章の自己調整レギュレータは、この極配置計算をオンラインで繰り返し実行する(式11.1〜11.3)という点で第8章の設計手続きの直接の延長だが、同時に「対象システムのモデルが実行時に変わりうる」ことを認める点で、第8章までの「モデルは設計時に一度決めれば十分」という暗黙の前提を覆す。(Source: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 8 Proportional Control]] §8.5, [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 11 Advanced Topics]] §11.3) ## 未解決の問い - 開ループ制御と閉ループ制御の比較(表1.1)では「正確なモデルの構築困難性」が閉ループ優位の主因とされるが、モデル構築の困難さを定量的にどう評価するかは本章では触れられていない(後続章のシステム同定の議論を要確認)。 - SASO特性のうち「安定性」は明確に定義されるが、計算機システムにおける「望ましい整定時間・オーバーシュートの水準」をどう決めるかは、第8章の比例制御設計例でも一般解は示されず、個別事例のトレードオフとして扱われる(§1.7で「今日、regulationは管理者がoptimizationを達成する非公式な手段として行っている」と述べられるのみ)。 - ~~計算機システム特有の非線形性(出力飽和・入力飽和)が、線形時不変系を前提とする本書の分析手法(第2〜10章)にどこまで適用限界をもたらすかは、第1章の範囲では明らかにされていない。~~ → 第11章でゲインスケジューリング・自己調整レギュレータ・最小分散制御・流体流近似・ファジィ制御という5技法が答えとして提示されたことで解消した。ただし、実務でどの程度の非線形性・時変性・確率性であれば線形時不変近似のままで十分で、どこから発展的技法への切り替えが必要になるかという定量的な閾値は、第11章でも示されていない(各技法の適用例が示すのはM/M/1/K・Apache HTTP Serverという特定のワークロード・パラメータ範囲での効果のみ)。 - 第8章は比例制御が定値制御(regulatory control)の目標を構造的に完全には達成できないことを示したが、第1章が挙げるもう一つの制御目標である外乱抑制(disturbance rejection)・最適化(optimization)についても同様の構造的限界があるのか、あるとすればどの制御則で解消されるのかは、第9章(積分制御)・第10章(状態空間フィードバック)の確認を要する。 - ゲインスケジューリングは「複数の安定なコントローラの切り替えが全体として安定である保証がない」という課題を持つと第11章で指摘されるが(§11.2)、この安定性問題への具体的な対処法は本書の範囲では示されない。切り替え制御系(switched systems)の安定性理論との接続を要確認。 ## 関連 - ソース: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 1 Introduction and Overview]] / [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 8 Proportional Control]] / [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 11 Advanced Topics]] - 書籍: [[Feedback Control of Computing Systems]] - 実体: [[Apache HTTP Server]] / [[IBM Lotus Domino Server]] - 概念: [[SASO特性]] / [[フィードバックループ]] / [[待ち行列理論]] / [[サイバネティクス]] / [[制御ループの安定性とタイムラグ補償]] / [[極配置設計]] / [[適応制御]] ## 出典 - Hellerstein, Diao, Parekh, Tilbury, *Feedback Control of Computing Systems*, IEEE Press / John Wiley & Sons, 2004, Chapter 1; Chapter 8, §8.1, §8.6; Chapter 11, §11.1-§11.3.