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

スチール時間を反映した解析

ドキュメント内 目次 (ページ 61-65)

VMがpCPUにスケジューリングされていなかったために動作できなかった時間を空白時 間と呼ぶ.VMにおける性能低下異常の検出のためには,空白時間が,スチールによるもの かホルトによるものかを区別する必要がある.スチールは,VMMの操作で発生する.要因 は,VMM内か他VMにある.つまり,スチール要因は,自OS環境(自VM環境)の外部に ある.対して,ホルトは,OSがCPUにhalt命令を発行して発生する空白時間で,OSのス ケジューリング制御下にある.従って,ホルト要因は自OS環境内(自VM環境内)にある.

本節では,先ず,2章の表2.1 の評価環境を使用して,VMMで行う一元的な性能プロファ イリングシステムによるスチール時間の解析結果が正しいことを検証する.このために,一 つのpCPU上に三つのVM(guestOS1,guestOS2,およびguestOS3)を起動する.各VM はvCPUを一つだけ持つ.各VMでは,libquantumを同じように動作させる.表 3.3 に,

guestOS1の性能プロファイリング結果を示す.表 3.4 に,VMMの性能プロファイリング

結果を示す.表 3.3 より,VM1におけるスチールは,69.39% であることが分かる.また,

表 3.4 から,VMMにおいて,VM1を除いたCPU使用率が 69.39% であることが分かる.

これらの結果の一致から,VMMで行う一元的な性能プロファイリングシステムによる解析 結果の中のスチールの結果が正確であることが分かる.

表 3.3 guestOS2とguestOS3によるスチール発生時のguestOS1のUnified VM profiling結 果(Guest-level profiling結果)

Total samples:29999 OS:USER:steal = 0.79%:29.82%:69.39%

Samples %Ratio Function Module

20816 69.39 [ steal ] (outside) 5156 17.19 quantum toffoli libquantum 2286 7.62 quantum sigma x libquantum 1160 3.87 quantum cnot libquantum 265 0.89 quantum swaptheleads libquantum 73 0.24 quantum objcode put libquantum 21 0.07 apic timer interrupt vmlinux 11 0.04 pvclock clocksource read vmlinux 10 0.03 ring buffer lock reserve vmlinux 9 0.03 native apic mem write vmlinux

表 3.4 guestOS1〜guestOS3の3VM動作中のUnified VM profiling結果(Host-level profiling 結果)

Total samples:29932 OS:USER:VM = 6.81%:0.68%:92.51%

Samples %Ratio Function Module

9402 31.41 [ guestOS3 ] (VM3) 9161 30.61 [ guestOS1 ] (VM1) 9125 30.49 [ guestOS2 ] (VM2)

137 0.46 vmx vcpu run kvm intel

67 0.22 update curr vmlinux

59 0.20 rb reserve next event vmlinux 59 0.20 (stripped local functions) qemu-kvm 50 0.17 copy user generic string vmlinux 49 0.16 kvm arch vcpu ioctl run kvm 39 0.13 ring buffer lock reserve vmlinux

次に,guestOS2とguestOS3の二つのVMを停止する.VMMで行う一元的な性能プロ ファイリングシステムによる解析結果の中のホルトの結果(idle)の正しさを検証するため,

1VM(guestOS1)のみを起動状態とする.この検証では,データ収集時にlibquantumを10 秒間だけ動作させる.データ収集時間は,表2.2にある通り,30秒間である.残りの20秒間,

guestOS1は,自発的にidle状態となる.従って,VM上でもVMM上でも,idleの%Ratio が,約67 %(20秒/30秒 = 66.7 % )と期待する.

表 3.5に,VM上の性能プロファイリング結果(Guest-level profiling)を示す.表 3.6 に,

VMM上の性能プロファイリング結果(Host-level profiling)を示す.実際に,表 3.5 の結果 から,VM上では,idleが 67.40% であることが分かる.一方,VMM上でのidle(poll idle 関数)は,表3.6 より,66.73% であることが分かる.これらの結果は互いに近い値であり,

かつ期待通り67 % である.従って,VMMで行う一元的な性能プロファイリングシステム は,VMのホルトを正確に把握できる.さらに,本節の結果から,VMMで行う一元的な性 能プロファイリングシステムでは,VMの空白時間をスチールかホルトの二つの状態に分類 できることが分かった.これは,VM-Exit reason numberの収集とVMM時間による共通時 間ベースの解析手法の両方の効果である.

表 3.5 ホルト状態を含むguestOS1のUnified VM profiling結果(Guest-level profiling結果)

Total samples:30000 OS:USER:IDLE:steal = 0.54%:30.42%:67.40%:1.64%

Samples %Ratio Function Module 20220 67.40 [ idle ] (halt exit)

4987 16.63 quantum toffoli libquantum 2326 7.76 quantum sigma x libquantum 1063 3.54 quantum cnot libquantum

492 1.64 [ steal ] (outside) 392 1.31 quantum gate1 libquantum 237 0.79 quantum swaptheleads libquantum 61 0.20 quantum objcode put libquantum

50 0.17 mulsc3 libquantum

13 0.04 apic timer interrupt vmlinux

表 3.6 1VM(guestOS1)のみ動作中のUnified VM profiling結果(Host-level profiling結果)

Total samples:29943 OS:USER:IDLE:VM = 2.17%:0.17%:66.73%:30.93%

Samples %Ratio Function Module

19982 66.73 poll idle vmlinux

9260 30.93 [ guestOS1 ] (VM1) 25 0.08 vmx vcpu run kvm intel 21 0.07 ring buffer lock reserve vmlinux

17 0.06 update curr vmlinux

17 0.06 do select vmlinux

15 0.05 rb reserve next event vmlinux 15 0.05 (stripped local functions) qemu-kvm 13 0.04 trace clock local vmlinux 11 0.04 apic timer interrupt vmlinux

ドキュメント内 目次 (ページ 61-65)