3.4. 強制フローの法則(1):Quantitative System Performance
「3.3. リトルの法則(2)」の続きです。
3.4. 強制フローの法則
リトルの法則を検討する際、我々は見る範囲を個々のリソースからシステム全体にまで変えることを許してきた。詳細さの異なるレベルでは「要求」の異なる定義が適切である。例えば、ディスクについて考える場合、要求はディスク・アクセスであると定義し、これをベースにしてスループットと滞在時間を測定するのが自然である。他方、システム全体について考える場合、要求はユーザ・レベルの会話であると定義し、これをベースにしてスループットと滞在時間を測定するのが自然である。
システムのこれらの2つの見方の間の関係は強制フローの法則によって表現され、この法則は、あるシステムの全ての部分における流れ(スループット)は互いに比例する、と述べる。観測期間の間、我々がシステム完了だけでなく個々のリソースでの完了数もカウントするとしよう。リソースの訪問回数をシステム完了数におけるそのリソースでの完了数の割合であると定義しよう。より直感的には、1つのシステムレベル要求がそのリソースを訪問する平均回数であると定義しよう。もし、添字を持つ変数で番目のリソースを指し示すならば(添字のない変数はシステム全体を指し示し続ける)、この定義を以下のように書くことが出来る。
- リソースの訪問回数:
- もし観測期間の間、10件のシステム完了と、特定のディスクでの150件の完了を測定したならば、平均で個々のシステムレベル要求は150/10=15件のディスク操作を要求していることになる。
もし、この定義をと書き直して、完了数を観測期間の長さで割ったものがスループットであると定義されていることを思い出すならば、リソースのスループットは以下で与えられる。
- 強制フローの法則
強制フローの法則の非形式的な言明は、システムのさまざまなコンポーネントは与えられた期間での(「トランザクションの量」で測った)作業の見合った量を処理しなければならないということである。例として、バッチ処理システム内の各々のジョブが特定のディスクへの平均6回のアクセスを要求し、そのディスクは1秒あたりバッチジョブからの12個の要求を処理していると告げられたとしよう。するとバッチジョブのシステム・スループットは12/6=2ジョブ/秒であることが分かる。さらにもし、別のディスクが1秒あたり18個のバッチジョブ要求を処理していると告げられたならば、個々のバッチジョブはこの2番目のディスクへのアクセスを平均18/2=9回要求することが分かる。
リトルの法則は強制フローの法則と組み合わされるときに特にパワフルになる。例として、我々は、以下の既知の特徴を持つ会話型システムの平均システム応答時間を決定することを求められているとしよう。
- 25端末
- 18秒の平均考慮時間
- 特定のディスクへの1会話あたりの訪問20回
- そのディスクの稼動率30%
- そのディスクへの1訪問あたりの平均処理要求時間25ミリ秒(秒)
我々は応答時間の法則:を適用したい。我々は端末数と平均考慮時間を知っているが、スループットを欠いている。しかし、我々は特定の1つのディスクでの訪問回数(つまり、1会話要求によってそのディスクへなされる訪問の平均回数)を知っているので、仮に我々がそのディスクでのスループットを知っていたとしたならば、システムレベルのスループットを得るために強制フローの法則を適用することが出来る。我々はこのデバイスでの稼動率と処理要求時間の両方を知っているので、ディスクのスループットを得るために稼動率の法則を用いることが出来る。以下の量を計算する。
1会話のディスク処理要求時間を2つの方法のいずれかで記述出来ることに注意しよう。1会話がそのディスクに特定の回数の訪問をし、個々の訪問が特定の量の処理時間を要求すると言うことによって、か、1会話によって要求されるディスク処理時間の総量を指定することによって、かのいずれかでである。この2つの観点は等価であり、どちらでもより便利なものが選ばれるべきである。以下のように定義する。
- 、リソースでの処理要求時間:
- もし1つのジョブがディスクへ平均20訪問し、1訪問あたり平均25ミリ秒を要求するとすれば、そのジョブは総計ミリ秒のディスク処理を要求するので、そのサービス要求時間はそのディスクで500ミリ秒である。
これから我々はリソースでの1訪問あたりのサービス要求時間を指し示すのにを、そのリソースでの総処理要求時間を指し示すのにを用いることにする。添字のないをの和であると定義する。つまり1ジョブが全てのリソースで要求する総処理時間である。
「3.4. 強制フローの法則(2)」に続きます。