7.4.3.ミックスド・モデルの解法:Quantitative System Performance

7.4.2.2.近似の解法」の続きです。(目次はこちら

7.4.3.ミックスド・モデルの解法


 ミックスド待ち行列ネットワーク・モデルはあるクラスがオープンで、あるクラスがクローズドであるようなモデルである。そのようなモデルは、例えば、バッチとトランザクションの混合処理システムをモデル化するために構築される。モデル全体の負荷強度ベクトルを\vec{I}\equiv(N_1\:or\:\:\lambda_1,\;N_2\:or\:\:\lambda_2,...,\;N_C\:or\:\:\lambda_C)で示すことにする。ミックスド・モデルはアルゴリズム7.4を用いて評価される。待ち行列現象の重要な側面はアルゴリズムのステップ2によって示されている。そのステップでは、ミックスド・モデルのクローズド・クラスの性能尺度が、クローズド・クラスのみからなり、オープン・クラスを除去したモデルを作成することによって計算される。オープン・クラスのクローズド・クラスの性能尺度への影響は全てのデバイスでクローズド・クラスの処理要求時間を「水増し」することによって表現される。使用される「膨張ファクタ」は1-U_{\{O\},k}であり、これはオープン・クラスによってプロセッサが使用されない時間の割合である。要するにこのファクタは、プロセッサの時間の若干が他の(この場合オープン)クラスに割当てられた場合の、クローズド・クラスから見たプロセッサの実効スピードを示している。例えば、もし3MIPS(1秒あたり百万命令)CPUがモデル内でオープン・クラスを構成するトランザクションによって33%使用されているならば、それは他のクラスにとって2MPIS CPUであるように見える。ステップ2のクローズド・モデルを作成するために処理要求時間を0.67で割ることは、実効的により遅いプロセッサ上ではより多い処理時間が必要であるという事実を単純に反映している。処理時間を水増しするこの方法はしばしば負荷隠蔽と呼ばれるが、のちの諸章で、客クラスの性能への影響を組み込んだままそのクラスを除去することによってモデルの複雑さを減らすために繰り返し使用される。

オープン・クラスの集合を\{O\}とし、クローズド・クラスの集合を\{C\}とする。
1.

  • 個々のセンターkについて、個々のオープン・クラスによるその稼動率
    • U_{c,k}(\vec{I})=\lambda_cD_{c,k} c\in\{O\}
  • と全てのオープン・クラスによるその総稼動率
    • U_{\{O\},k}(\vec{I})=\Bigsum_{c\in\{O\}}\lambda_cD_{c,k}
  • を求める。これは単に個々のオープン・クラスへの強制フローの法則と稼動率の法則の適用である。

2.

  • K個のセンターとクローズド客クラス(オープン・クラスはなしで)から成るクローズド・モデルを解く。そのクローズド・モデル内の個々のセンターkでの個々のクラスc\in\{C\}の処理要求時間D_{c,k}^*
    • D_{c,k}^*=\frac{D_{c,k}}{1-U_{\{O\},k}(\vec{I})} c\in\{C\}
  • をセットする。ただしD_{c,k}はもともとのミックスド・モデルでのセンターkでのクラスcの処理要求時間である。このモデルの解から得られるスループット待ち行列長や滞在時間はミックスド・モデル内での対応するクローズド・クラスについての性能尺度である。稼動率は処理要求時間D_{c,k}のもともとの集合に稼動率の法則を適用することにより計算出来る。

3.

  • オープン・クラスについての在隊時間と待ち行列長は、クローズド・クラスの性能尺度を用いて計算出来る。
    • R_{c,k}(\vec{I})=\frac{D_{c,k}\left[1+Q_{\{C\},k}(\vec{I})\right]}{1-U_{\{O\},k}(\vec{I})} c\in\{O\}
    • Q_{c,k}(\vec{I})=\lambda_cR_{c,k}(\vec{I}) c\in\{O\}
  • ただしQ_{\{C\},k}(\vec{I})はステップ2でのクローズド・モデルの解から得られるセンターkでの全てのクローズド・クラスの総待ち行列長である。

アルゴリズム7.4 厳密MVA解法(ミックスド・モデル)


ミックスド・モデルの例
 図7.4は4つのクラスと2つのセンターを持つミックスド・モデルを示している。クラスABはオープンであり、一方、クラスCDはクローズドである。図に示すように、モデルの解はアルゴリズム7.4のステップに対応する3ステップで得られる。


モデル入力

  • D_{A,CPU}=1/4D_{B,CPU}=1/2D_{C,CPU}=1/2D_{D,CPU}=1
  • D_{A,Disk}=1/6D_{B,Disk}=1D_{C,Disk}=1D_{D,Disk}=4/3
  • \lambda_A=1\lambda_B=1/2N_C=1N_D=1


モデル構造


見積り
1.

  • オープン・クラスによるデバイスの総稼動率を計算する。
    • U_{\{O\},CPU}(\vec{I})=\lambda_AD_{A,CPU}+\lambda_BD_{B,CPU}=0.5
    • U_{\{O\},Disk}(\vec{I})=\lambda_AD_{A,Disk}+\lambda_BD_{B,Disk}=0.667

2.

  • オープン・クラスを削除しクローズド・クラスの処理要求時間を水増しして得られるクローズド・モデルを解く
    • D_{C,CPU}^*=\frac{0.5}{1-0.5}=1
    • D_{D,CPU}^*=\frac{1}{1-0.5}=2
    • D_{C,Disk}^*=\frac{1}{1-0.667}=3
    • D_{D,Disk}^*=\frac{1.333}{1-0.667}=4
  • このモデルはセクション7.4.2の例で解かれたクローズド・モデルと等価なので、同じ性能尺度を結果として得る。例えば、CPUクラスCDについての待ち行列長は0.211と0.789である。

3.

  • クローズド・クラスの待ち行列長を用いて、オープン・クラスの性能尺度を計算する。例えば
  • R_{A,CPU}=\frac{0.25{\times}(1+1.0)}{1-0.5}=1.0
  • R_{B,CPU}=\frac{0.5{\times}(1+1.0)}{1-0.5}=2.0

図7.4 ミックスド・ネットワークの例

7.5.理論的基礎」に続きます。