12.5.1.プロセッサのサービス要求時間の見積り:Quantitative System Performance

12.5.サービス要求時間」の続きです。(目次はこちら

12.5.1.プロセッサのサービス要求時間の見積り


 CPUは通常、負荷が重いリソースであるので、そこでのさまざまなクラスのサービス要求時間を性格に決定することは重要である。表12.1に示したように、モニタ・データはしばしば、個々の作業負荷要素についてCPU使用量と客完了数を含んでいる。あいにく、これらの数量の商は実際には、CPUサービス要求時間の貧弱な見積りしか生み出さないことが判明する。その理由は、クラス毎に報告されるCPU使用量はしばしば、CPU活動のかなりの量を捉えることに失敗しているからである。より具体的には、クラス毎に報告されるCPUビジー時間の合計は、クラスを区別しようとしないモニタが報告する総CPUビジー時間よりもかなり少ないことが起こりやすい。あるクラスに帰せられるCPU使用量の、そのクラスによって起動された活動による総CPUビジー時間に対する比は捕獲比率として知られている。捕獲比率は通常さまざまなシステムとさまざまな作業負荷要素について0.85から0.40までの範囲にある。特定のシステムについて、全体捕獲比率は上記に提案したようにして見積もることが出来る。つまり、クラス毎に(しばしばアカウンティング・モニタによって)報告されるCPUビジー時間の合計を、クラスを区別しようとしないモニタによって(しばしばソフトウェア・モニタによって)報告される総CPUビジー時間で割ることによってである。
 単一クラス・モデルの場合、ソフトウェア・モニタ・データからの総CPUビジー時間の見積もりを、アカウンティングまたはソフトウェアのいずれかのモニタのデータからの総客完了数の見積もりで割ることは、CPUサービス要求時間のよい見積もりをもたらす。しかし、複数クラス・モデルの場合、出所不明のCPUビジー時間をクラスに割当てるための技法が考案されなければならない。この処理は3つのステップを持っている。

  • 期間の間の出所不明のビジー時間を計算する。
  • どれだけを個々のクラスに帰着させるかを決定する。
  • どれだけを個々のクラスの個々の客に帰着させるかを計算する。

これらのステップの2番目は興味深いステップであり、このあとの段落で扱われる。


 バッチ・ジョブと会話ユーザの2つの要素から成る作業負荷を持つシステムを考察しよう。表12.1に挙げた情報に見合う情報がすでに得られていると仮定する。f_{BATCH}f_{INTER}が、全ての測定されたCPUビジー時間があるクラスに帰着されるために、個々のクラスに帰着されたCPUビジー時間に乗算しなければならないような(未知の)ファクタであるとしよう。(f_cがクラスcについての捕獲比率の逆数であることを観察しよう。) これは次の式を導く。

  • B_{CPU}=f_{BATCH}{\times}A_{BATCH,CPU}+f_{INTER}{\times}A_{INTER,CPU}

ただしA_{c,CPU}はクラスcに帰着するCPU使用量であり、B_{CPU}は総測定CPUビジー時間である。
 f_{BATCH}f_{INTER}の一意の値を決定するために我々はこの等式に加えてそれらの間の関係を確立しなければならない。いくつかの可能性が存在する。

  • 総CPU時間の帰着されるCPU時間に対する比率が個々のクラスについて同じであると仮定すると、以下がもたらされる。
    • f_{BATCH}=f_{INTER}=\frac{B_{CPU}}{\left[A_{INTER,CPU}+A_{BATCH,CPU}\right]}
  • 出所不明のCPUビジー時間はオーバヘッドである可能性が高いので、個々のクラスについて総オーバヘッドの相対尺度を決定するためにCPUオーバヘッドを引き起こし易い活動についてのクラス・ベースの情報(ページング・レートやスワッピング・レートやスプーリングやユーザI/Oやジョブ起動のような)を用いる。例えば、オーバヘッドはほとんど全てページ・フォールト処理によるものであると仮定し、OV_c(クラスcの相対オーバヘッド)がクラスcのフォールトによって転送されたページの数の測定値であるとしよう。すると
    • f_{INTER}=
    • 1+\frac{\frac{OV_{INTER}}{OV_{INTER}+OV_{BATCH}}{\times}\left(B_{CPU}-\left(A_{INTER,CPU}+A_{BATCH,CPU}\right)\right)}{A_{INTER,CPU}}


2番目の方法はより理に適っている。あいにく、2つ以上のファクタが不可避的にオーバヘッドに寄与している。よって、OV_cはいくつかのファクタの重み付け合計であるとしてよりよく定義される。

  • OV_c=\Bigsum_{all\;factors\;i}weight\;{i}\times{factor\;}i_c

実際にこの方法を適用しようとする場合に、2つのありふれた問題に遭遇しがちである。

  • 1つの測定期間についてさえ、どのファクタを考慮すべきか、そしてこれらのファクタに割り付ける重みはいくらか、を決定することは困難だろう。繰返しが不可避的に要求される。つまり、重みを見積もる。サービス要求時間を計算する。モデルを評価する。重みを再度見積もる。など。
  • もし選択した重みに確信を本当に持つべきであるならば、多くの測定期間からのデータを考慮しなければならず、個々のデータ集合に適用した時によいモデル結果を生みだす重みを見つけなければならない。その場しのぎの方法を採用することも出来るし、一次回帰法を使用することも出来る。


 一旦f_{BATCH}f_{INTER}が決定されたならば、2つのクラスのサービス要求時間を、以下の式によって見積もることが出来る。

  • D_{c,CPU}=\frac{f_c{\times}A_{c,CPU}}{measured\;class\;c\;completions}

この方法で決定されたサービス要求時間は、固有のサービスと固定のオーバヘッドと、測定データがカバーする期間内のシステムの混雑の程度を反映する変動オーバヘッドの量を含んでいることに注意しよう。


12.5.2.I/Oのサービス要求時間の見積り(1)」に続きます。