9.6.2.2.待ち行列ネットワーク・モデル:Quantitative System Performance

9.6.2.1.システムの要点」の続きです。(目次はこちら

9.6.2.2.待ち行列ネットワーク・モデル


 スタディ対象の構成は小さなもので、512KBのメモリと、スワッピングやページングやファイル動作に用いる1台のディスクである。作業負荷は1つのバッチ・ジョブ(10,000行のプログラムのコンパイルの繰返し)と、それぞれが特定のタスク(コンパイル、実行、エディット、ささいなコマンド)を実行する7個の模擬された会話ユーザからなるベンチマークである。スタディはベース・システムのモデルの有効性確認と、モデルを用いての作業負荷への特定の修正(会話ユーザの削除とバッチ・ジョブの単独での実行)と構成の修正(物理メモリの量を2倍にする)の効果の予測と、最後にこれらの修正を行って結果をモデルの予測と比較すること、を含んでいる。システムの4つの側面がこの章の文脈において特に興味がある。

  • メモリ制約が存在する。
  • 提案したシステム修正はシステムのページング動作に影響を与えると予測され、よってページング動作は明示的にモデル化されなければならない。
  • 提案したシステム修正はスワッピング動作のレベルにも影響を与えると予測されるので、これも明示的にモデル化されなければならない。
  • 1台のディスクということは、スワッピング動作がページングとファイルI/Oのスループットと干渉することが予想されるということを意味する。

 解析の基礎はおなじみの2階層モデルである。低レベル・モデルは、高レベル・モデルで使用するFESCを定義するために個々の実現可能個体数について評価される。低レベルと高レベルのモデルは以下の段落で記述される。


低レベル・モデル
 低レベル・モデルは、CPUとディスクを表現する2つのサービスセンターと、バッチ・ジョブと会話ユーザを表現する2つの客クラスを持つ。実際のシステムにはスワッピング動作を削減するためにメモリにロックされた1個のバッチ・ジョブ・ストリームが存在したので、低レベル・モデルではバッチ・クラスは1に固定されたマルチプログラミング・レベルを持つ。実際のシステムでは7つの会話ユーザはさまざまな滞在セット・サイズを持っていたが、その差は小さく、バッチ・ジョブに加えて平均で6つの会話ユーザを収容することが出来た。よって低レベル・モデルではこのクラスの客がゼロから6まで存在することになる。
 個々のクラスについて、測定データはCPU処理要求時間と、ディスク処理要求時間の5つの動作構成要素をもたらす。ページングとスワッピングの動作に影響を与えるシステム修正を我々は調査したいので、個々のクラスについてのこれらの動作によりディスク処理要求時間の構成要素を見積もる手法を開発しなければならない。
 最初に、ページング動作を考察しよう。個々のVMSプロセスはメモリに滞在している時、ページ・フレームの固定の割当てを持っていることを思い出そう。このため、1プロセスによって維持されるページ・フォールトの数はシステム負荷に反応しない。しかし、ディスクI/Oをもたらすそれらのページ・フォールトの数は当該プロセスに属する共用ページ・キャッス内のページ・イメージの数に関係するので、その数は負荷によって変化する。よってページング動作を表現するキーは共用ページ・キャッシュの効率を見積もることである。
 1会話あたりの平均ページ・フォールト数を測定することが出来、1ページング転送あたりの平均ディスク処理時間を計算することが出来る。これらの数量の両方が提案する修正に対して無反応であることが予想される。共用ページ・キャッシュの効率はページ・フォールトのページング転送に対する比に反映される。我々はこの比をベンチマーキング測定の間に計算することが出来る。システム修正後の性能を予測するために、この比はキャッシュをアクティブに用いる個々のプロセスで使用可能な平均キャッシュ・ページ・フレーム数に線形に関係していうと仮定する。例として、ベンチマークの間、平均1会話が158回のページ・フォールトを引き起こしページ・フォールトのページング転送に対する比が4:1であった。よって平均1会話は158/4=39.5回のページング転送を引き起こした。平均アクティブ・プロセス数は8である。すなわち、6つの会話ユーザ、1つのバッチ・ジョブ、そしてVMS(その一部はページング可能である)。我々の仮定は、もし平均アクティブ・プロセス数が3だったら、ページ・フォールトのページング転送に対する比は4×8/3=10.7であり、1会話は158/10.7=14.8回のページング転送を引き起こすことを見積もることを可能にする。我々の仮定はまた、もし共用ページ・キャッシュのサイズがメモリ追加によって2倍になれば(3個のアクティブ・プロセスでは)、ページ・フォールトのページング転送に対する比は10.7×2=21.4であり、1会話は158/21.4=7.4ページング転送を引き起こすことを見積もることを可能にしている。1会話あたりの平均ページング転送回数に1ページング転送あたりの平均ディスク処理時間をかけると、ディスク処理要求時間のページング動作要素になる。
 次に、スワッピング動作を考察する。アルゴリズム9.5で示した方法は準備完了ユーザの数の平均がメモリ制約を越えている場合を除いて適している。この場合、VMSは1会話に1回プラス1量子に1回スワップする。後者による1会話あたりのスワップ数は1会話あたりのCPU処理要求時間を量子長で割ることによって近似出来る。


高レベル・モデル
 システムの解析を準備完了会話ユーザとアクティブ会話ユーザの数の平均についての初期値を定めることから始める。これらの値はページング(アクティブ客の数の平均がこのために使用される)とスワッピング(準備完了客の数の平均がこのために使用される)によるディスク処理要求時間を我々が見積ることを可能にする。ディスク処理要求時間が与えられると、低レベル・モデルを評価出来る。個々の実現可能な会話個体数(バッチ個体数は常に1である)についてこれを実行して、FESCを構築するのに用いる負荷依存スループットを求める。
 高レベル・モデルはこのFESCと作業負荷(考慮時間Zを持つN個の客)から成る。このモデルの評価は準備完了会話客とアクティブ会話客の数の平均値の改訂された見積り値をもたらす。もしこれらの改訂された見積り値が低レベル・モデルの前回の評価で用いた見積り値とかなり違っていれば、新しい値を用いて繰り返す。
 会話応答時間スループットは、よって会話ユーザのデバイス稼動率への寄与は、高レベル・モデルから直接決定出来る。バッチ・スループットは、個々の会話個体数に遭遇した時間の割合(高レベル解析から得られる)によって重み付けされたその個体数でのバッチ・スループット(低レベル解析から得られる)の合計をとることによって計算される。次に、平均バッチ応答時間とバッチのデバイス稼動率への寄与はリトルの法則の適用によって決定出来る。


9.6.2.3.モデルの使用法」に続きます。