• 検索結果がありません。

第 5 章 VMM レベルでの資源管理ポリシー変更手法 59

5.5 まとめ

0 2 4 6 8 10 12

Timer error [ms]

Native Idle Guest Idle FoxyIdle

図5.12: Timer Errors of the idletime schedulers. The figure shows the absolute val-ues of the errors between the calculated interval and the actual interval. The calculated interval is an interval which the idletime scheduler or FoxyIdle calculated for stopping background requests. The actual interval is an interval for which background requests were actually stopped.

に,両タスクはそれぞれ異なるLinuxカーネルのソースツリーの走査を行う.こ のようにすることで,それぞれのタスクがバッファキャッシュを共有することなく,

ディスク読み込み要求を発行する.

表5.3に結果を示す.比較として,FoxyIdleやアイドル時間スケジューリングを用 いないときの実行時間(Concurrent execution)とタスクを単独で動作させたときの実 行時間(Standalone)も示す.結果より,Concurrent executionと比べると,FoxyIdle はすべての場合において両タスクの実行時間を短縮していることがわかる.Native IdleやGuest Idleもほぼ同じ結果である.実行時間を短縮している理由はFoxyIdle を用いることで,Concurrent execution時よりもディスク競合を減少させているか

らである(図 5.13).実験結果より,FoxyIdleがアイドル時間スケジューリングを

動作を作り出し,その恩恵をもたらすことがわかった.

表 5.3: Comparison of execution times ofGrep andUpdatedb. The table reports execution times of Grep (foreground) and Updatedb (background) with FoxyIdle.

Both jobs access totally about 260 MB of files and directories.

Native Idle Guest Idle

Preemption intervals Grep(sec) Updatedb(sec) Grep(sec) Updatedb(sec)

5 ms 9.72 101.13 24.34 113.44

10 ms 9.86 101.91 17.50 109.07

15 ms 9.25 101.17 15.40 107.59

20 ms 8.72 103.46 14.63 107.30

Concurrent execution 10.14 102.02 82.94 123.31

Standalone 8.67 92.04 14.34 87.62

FoxyIdle

Grep(sec) Updatedb(sec)

24.92 113.74

16.40 107.94

15.50 107.60

15.41 107.46

82.94 123.31

14.34 87.62

ことによってOSに仮想デバイスを提供していた.FoxyTechniqueでは,デバイス の動作に対するOSの振る舞いを推測する.OSの動作を推測しながら,仮想デバ イスの動作を意図的に変更することで,OSに所望の動作をさせる.これを利用し て,カーネルを修正して資源管理ポリシーを導入したときに近い動作を作り出す.

FoxyTechniqueは次の特徴をもつ.まず,OSカーネルを修正することなく資源

管理ポリシーを擬似的に導入可能である.FoxyモジュールをVMM内に実装して いるので,VMM 上で稼働するOS に対して特別な修正を加えることなく,Foxy モジュールを適用することができる.次に,FoxyTechniqueを用いて実現したポリ シーは様々な OSに適用可能である.Foxyモジュールを VMM 内に1 回実装す ることで,VMM上で稼働するすべての OSに対して擬似的に資源管理ポリシー

(a) Concurrent Execution

(b) Execution with FoxyIdle

図 5.13: Difference between the concurrent execution and the FoxyIdle execution.

The figure shows GrepandUpdatedb behavior with and without FoxyIdle. In con-current execution, both jobs make progress with disk contention. In contrast, FoxyIdle allows both benchmarks to run with less disk contention.

を導入することができる.3つめの特徴は,FoxyTechniqueを用いて実現したポリ シーはゲストOSで稼働するポリシーよりも正確に動作することがある点である.

VMM内でFoxyモジュールが動作するため,仮想化によるオーバーヘッドを被る ことなくパフォーマンス測定が可能である.そのため,RTTやディスクシーク時 間を利用する資源管理ポリシーは,FoxyTechniqueを用いて導入した方がよい場合

がある.

実際にFoxyTechniqueを用いて,2つのFoxyモジュールをXen 3.0.2-2上に実装 した.1つめはFoxyVegasである.FoxyVegasはTCP Vegas [44]を作り出すFoxy モジュールである.TCP Vegasは輻輳ウィンドウを決めるTCP輻輳制御アルゴリ ズムの一種である.FoxyVegasでは,TCPはフロー制御と輻輳制御に基づいてパ ケットのウィンドウサイズを決めているという知識を用いる.FoxyVegasは,デー タの受信側が高負荷であると偽った状況をゲストOSに見せることで,ゲストOS のウィンドウサイズを調整し,TCP Vegas の振る舞いを作り出している.また,

FoxyVegasはRTTをゲストOS上のTCP Vegasより正確に計測できるので,ゲス

トOS上のTCP Vegasよりもより正しく振る舞うことができた.

2つめはFoxyIdleである.FoxyIdleはアイドル時間(idletime)スケジューリング [9]を作り出すFoxyモジュールである.FoxyIdleはディスク読み込み要求に対して アイドル時間スケジューリングを行う.アイドル時間スケジューリングでは,バッ クグラウンドプロセスによるフォアグラウンドプロセスのパフォーマンス劣化を 防ぐために,バックグラウンドプロセスのディスク読み込み要求がフォアグラウ ンドプロセスのそれと競合した場合,バックグラウンドプロセスのリクエストを 止める.FoxyIdleでは,ディスクがいつまでもデータをシークしていると偽った 状況をゲスト OSに提供する.FoxyIdleはこのシーク時間を調整することで,ア イドル時間スケジューリングの動作を作り出している.実際,FoxyIdleは,4つの ディスクスケジューリングポリシーをアイドル時間スケジューリングに近い動作 にすることができた.