4.2.1 実 I/O 時間の変動
仮想計算機では,ゲストOSは,VMMが提供する仮想的な外部記憶装置を利用する.こ こで,VMMはキャッシュ機能を持ち,かつゲストOSからの入出力要求を独自の入出力ス ケジューラで制御する.これにより,複数のプロセスが入出力要求を発行した場合,ゲスト OSにとっての実I/O時間は,物理計算機に比べて大きく変動する.例えば,複数のプロセ スが異なるデータを読み書きすることで,VMMのキャッシュミスが増えて実I/O時間が延 び得る.また,VMMの入出力スケジューラが入出力スループット向上のために,ゲストOS への完了通知の送信をまとめてしまうと,ゲストOSにとっては入出力要求の完了通知の間 隔が非常に短くなり,式2.4で計測する実I/O時間が極端に短くなる場合がある.
このように,実I/O時間が大きく変動すると,理想の入出力時間も大きく変動し,入出力 時間の調整精度が低下する可能性がある.例えば,他プロセスと調整対象プロセスが続けて ゲストOSの入出力用システムコールを呼び出したとき,基本方式は,実I/O可否判断規則 に従ってこれらのプロセスの入出力要求を許可する.ここで,VMMの入出力スケジューラ がゲストOSから受け取った入出力要求に対する完了通知をまとめてゲストOSに送信する と,基本方式は,式2.4によって調整対象プロセスの実I/O時間を非常に短い時間とみなす.
このため,調整対象プロセスの理想の入出力時間も非常に短くなる.一方で,完了通知の間 隔は非常に短いものの,ゲストOSが入出力要求を発行してから完了通知を受け取るまでの 時間(図2.1におけるT3−T2)は短くならない.つまり,式3.7の分母である理想の入出力 時間が非常に短くなる一方で,分子である実際の入出力時間には変化がない.この結果,実 際の入出力時間が一定であっても,調整精度が非常に大きくなる場合がある.
第 4 章 仮想計算機における調整精度 61
表 4.1 評価環境
物理計算機 プロセッサ 2.5 GHz 4core メモリ 8GB
外部記憶装置 5400rpm SATA/600 HDD 仮想計算機 プロセッサ 1core
メモリ 1GB
4.2.2 事前評価
仮想計算機環境における実I/O時間の変動の影響を明らかにするために,事前評価を行う.
評価環境を表4.1に示す.表4.1をもとに仮想計算機の構築条件を説明する.表4.1の物理計 算機でFreeBSD ver11.2を動作させ,物理計算機上にbhyve ver.1.10.5を用いて仮想計算機 を生成した.仮想計算機のプロセッサとメモリは,表4.1の通りである.
入出力時間をどれだけ精度良く調整できたのかは,調整精度で評価する.調整精度は,式 3.7によって算出する.
評価プログラムとして,2GBのテキストファイルに対して8KBのランダムリードを10000 回繰り返す処理を用いた.このプログラムは,ランダムリードの間にプロセッサ処理を実行 することで,入出力要求の発行間隔を変更できる.事前評価においては,プロセッサ処理時 間と入出力時間が1:1になるようにプロセッサ処理量を調整した.
最後に,測定データの扱いについて述べる.HDDは,入出力要求を受け取ってない時間が 続くと,省電力化のためにディスクの回転速度を低下または回転を停止する.このため,プ ロセスの起動直後は,実I/O時間が安定しない.そこで,この影響を除くために,測定デー タとして,1000回目から9000回目までの入出力時間を用いた.
走行するプロセス数ごとの実I/O時間の分布を図4.1に示す.図4.1を用いて,複数プロ セスが走行した場合,実I/O時間の変動が大きくなることを述べる.走行するプロセスが1 つの場合,ほとんどの実I/O時間が0.1ミリ秒未満の範囲内であり,残りの実I/O時間にお いても2ミリ秒以下である.一方で,走行するプロセス数が2つの場合,実I/O時間は,0.1 ミリ秒未満の範囲のみならず,10ミリ秒以上の範囲まで分布している.また,1ミリ秒から 10ミリ秒未満の範囲の実I/O時間が比較的少ないものの,特定の範囲に集中せずに広く分
第 4 章 仮想計算機における調整精度 62
0 400 800
-0.1 0.1-1 1-10
10-F re q u en cy
Real I/O Time [ms]
One Process Two Processes
図 4.1 実I/O時間の分布
布していることが分かる.
続いて,第2章で述べた基本方式を用いて,調整対象プロセスと他プロセスを1つずつ走 行させ,調整精度を評価する.ただし,他プロセスのランダムリード回数を無限回に設定し,
調整対象プロセスが走行している間,他プロセスからの入出力要求を発行し続けるようにし た.要求入出力性能ごとの平均の調整精度を図4.2に示す.図4.2より,要求入出力性能に関 わらず,調整精度が悪化している.例えば,要求出力性能が10%の場合の調整精度が約86 であり,要求入出力性能が40%の場合には約18である.しかし,要求入出力性能が90%の 場合の調整精度は約125である.
要求入出力性能が10%における調整精度の分布を図4.3に示す.図4.3より,他プロセス を1つ同時走行させた場合における調整精度の値は,0.1-0.3の範囲と0.9-1.1の範囲,および 1.9以上の範囲に主に分布すると分かる.具体的には,これら3つの範囲内の調整精度の合計 数は,全体の約86%を占める.1.9以上の範囲の中には,非常に大きな値の調整精度が存在 しており,平均の調整精度を悪化させている.具体的には,入出力要求の完了通知をVMM から立て続けに受け取ることで,実I/O時間が約50ミリ秒から2マイクロ秒になったとき,
第 4 章 仮想計算機における調整精度 63
0 20 40 60 80 100 120 140
10 20 30 40 50 60 70 80 90 100
A v er ag e o f re gu la ti o n r at io
Required Performance [%]
図 4.2 他プロセスを1つ同時走行させた場合における平均の調整精度
0 100 200 300 400
-0 .1 0 .1 -0 .3 0 .3 -0 .5 0 .5 -0 .7 0 .7 -0 .9 0 .9 -1 .1 1 .1 -1 .3 1 .3 -1 .5 1 .5 -1 .7 1 .7 -1 .9 1 .9 -
1.9-F re q u en cy
Regulation ratio
図 4.3 他プロセスを1つ同時走行させた場合における調整精度の分布
第 4 章 仮想計算機における調整精度 64
-40 -30 -20 -10 0 10 20 30 40
T im e o f C ar ry O v er [ m s]
t
図 4.4 繰り越し時間の変動
理想の入出力時間が約500ミリ秒から20マイクロ秒に短くなり,調整精度が約2220になっ た.このような非常に大きな値の調整精度は,800回の入出力処理のうち数回であった.し かし,平均の調整精度を悪化させるには十分である.
ここで,図4.3より,0.1-0.3の範囲の調整精度が比較的多い.これは,調整精度の値が大 きくなったときに発生する遅延時間の繰り越し時間を解消するために,遅延処理を実施して いない入出力処理が多いことを示す.もし,繰り越し時間を解消する前に再び調整精度の値 が大きくなると,繰り越し時間が蓄積してしまい,長期的にも入出力時間を上手く調整でき なくなる.要求入出力性能10%における繰り越し時間の遷移を図4.4に示す.図4.4より,
繰り越し時間は,0を中心に遷移しており,理想の入出力時間と実際の入出力時間の差分が 蓄積されることなく,解消できている.したがって,遅延時間の繰り越しによって理想の入 出力時間と実際の入出力時間の差分は長期的には解消しているものの,実I/O時間の変動に よって個々の調整精度が悪化している.言い換えると,実I/O時間の変動を抑制することで,
平均の調整精度の悪化を防ぐことができる.
第 4 章 仮想計算機における調整精度 65