この記事では、Oracle VM Server の仮想または物理 CPU 使用率を取得する方法について説明します。これには、実際の CPU 使用率とゲスト ドメインの実行時間が含まれます。ゲスト固有 (Dom-U) の CPU 使用率は、ゲスト自体でコマンドを実行することで取得できます。トップ、ps、および sar.
ただし、Oracle VM Server 管理ドメイン/ハイパーバイザー (Dom-0) の CPU 使用率を含む特定の CPU 使用率を取得したい場合は、次の xen-tools ユーティリティを Oracle VM Server で実行できます。
- /usr/sbin/xentop -v
- /usr/sbin/xenmon.py
1. xentop
xentop -v コマンドは、仮想 CPU 情報を表示します。例:
# xentop -v
6 domains: 2 running, 3 blocked, 0 paused, 0 crashed, 0 dying, 0 shutdown
Mem: 8312440k total, 6212448k used, 2099992k free CPUs: 2 @ 2128MHz
NAME STATE CPU(sec) CPU(%) MEM(k) MEM(%) MAXMEM(k) MAXMEM(%) VCPUS NETS NETTX(k) NETRX(k) VBDS VBD_OO VBD_RD VBD_WR SSID
4461_EL5U3 ------ 53060 0.0 1056636 12.7 1064960 12.8 1 0 0 0 3 0 0 0 0
VCPUs(sec): 0: 53060s
4474_EL5U2 ------ 45070 0.0 1056636 12.7 1064960 12.8 2 0 0 0 2 0 0 0 0
VCPUs(sec): 0: 32213s 1: 12857s
4516_EL4U6 -----r 512039 0.0 1056636 12.7 1064960 12.8 1 0 0 0 2 0 0 0 0
VCPUs(sec): 0: 512039s
4570_EL464 --b--- 302 0.0 2097152 25.2 2097152 25.2 1 1 10 218297 1 0 22371 16768 0
VCPUs(sec): 0: 302s
Domain-0 -----r 87787 0.0 254976 3.1 no limit n/a 2 8 1717873 4158394 0 0 0 0 0
VCPUs(sec): 0: 57819s 1: 29968s
4511_EL564 --b--- 108 0.0 524288 6.3 524288 6.3 2 1 342 214623 1 0 822 1 0
VCPUs(sec): 0: 96s 1: 12s 上記の例では、ドメイン Domain-0、4474_EL5U2、および 4511_EL564 はそれぞれ 2 つの仮想 CPU を使用しますが、他のすべてのドメインは 1 つの仮想 CPU のみを使用します。ドメイン Domain-0 は合計 87787 秒の CPU 時間を使用します。 VCPU0 で 57,819 秒、VCPU1 で 29,968 秒。
Xentop の使用法:
Usage: xentop [OPTION] Displays ongoing information about xen vm resources -h, --help display this help and exit -V, --version output version information and exit -d, --delay=SECONDS seconds between updates (default 3) -n, --networks output vif network data -x, --vbds output vbd block device data -r, --repeat-header repeat table header before each domain -v, --vcpus output vcpu data -b, --batch output in batch mode, no user input accepted -i, --iterations number of iterations before exiting -f, --full-name output the full domain name (not truncated) # Note: this can be used from the latest version of Oracle VM Server 2.2.2
パラメータの意味:
| パラメータ | 意味 |
|---|---|
| CPU(秒) | ゲスト OS が消費した (累積された) CPU 時間 |
| CPU(%) | 「ゲスト OS が現在消費している CPU の割合。注 1:これは、CPU(%) =実際に割り当てられた CPU 番号 * ゲスト OS の実際の CPU 使用率 (0-100%) として計算されます。したがって、ゲスト OS に 3 つの CPU が割り当てられている場合、これは最大 300% になる可能性があります。 「Actuall Assigned CPU#」はゲストOSに割り当てられた仮想CPU数ではなく、ゲストOSに割り当てられた実際のCPU数です。ゲストOSは3以上。注 2:これは、更新の間隔を割って計算されるため、最初の xentop 出力では常に 0.0% です。したがって、正しい CPU(%) を取得するには、「-i」オプションを 2 以上に設定する必要があります。注 3:これは、ゲスト OS のホスト OS での CPU 使用率を示しているだけなので、ゲスト OS での CPU 使用率 (「top」が示す例) とは異なる場合があります。」 |
| MEM(k) | ホスト OS メモリ上でゲスト OS が占有するメモリ サイズ (キロバイト単位)。 Domain0 の場合、これはホスト OS の /etc/grub.conf に指定されている dom0_mem=の値と同じ値であり、ゲスト OS の vm.cfg の「memory =」の値も同じです。元。 dom0_mem=1024M は、ホスト OS の MEM(k) に対して 1048576(kB) を示します。 |
| MEM(%) | ホスト OS メモリ上でゲスト OS が占有するメモリ サイズのパーセンテージ |
| MAXMEM(k) | ゲスト OS がホスト OS メモリ上で占有できるキロバイト単位の最大メモリ サイズ |
| MAXMEM(%) | ゲスト OS がホスト OS メモリで占有する最大メモリ サイズの割合 |
| VCPU | ゲストOSに割り当てられる仮想CPU番号 |
| ネット | ゲストOSに割り当てられる仮想ネットワークインターフェース番号 |
| NETTX(k) | ゲスト OS が送信するネットワーク トラフィック (キロバイト単位) (累積) |
| NETRX(k) | ゲスト OS が受信するネットワーク トラフィック (キロバイト単位) (累積) |
| VBDS | ゲストOSに割り当てられる仮想ブロックデバイス(=ストレージ)番号 |
| VBD_OO | ゲスト OS との間の I/O のブロック数 |
| VBD_RD | ゲストOSからのリードリクエスト数(累計) |
| VBD_WR | ゲストOSからの書き込みリクエスト数(累計) |
| VBD_RSECT | ゲスト OS からセクター番号を読み取ります (累積)。古い xentop では表示されません |
| VBD_WSECT | ゲスト OS からセクター番号を書き込みます (累積)。古い xentop では表示されません |
| SSID | 該当なし |
2. Xenmon.py
xenmon.py コマンドは、特定の物理 CPU 情報を表示します。例:
# /usr/sbin/xenmon.py CPU = 0 Last 10 seconds (99.80%) Last 1 second (99.72%) =============================================================================================================================================================================== 1 13.98 ms 1.40% 14.57 us/ex 10.40 ms 1.04% 14.00 us/ex Gotten 1 456.93 ms 45.69% 0.00 ns/io 349.26 ms 34.93% 0.00 ns/io Blocked 1 486.25 ms 48.63% 506.85 us/ex 36.53 ms 3.65% 49.15 us/ex Waited 0 40.33 ms 4.03% 101.06 us/ex 69.70 ms 6.97% 177.92 us/ex Gotten 0 588.45 ms 58.84% 0.00 ns/io 581.26 ms 58.13% 0.00 ns/io Blocked 0 17.87 ms 1.79% 44.77 us/ex 37.90 ms 3.79% 96.75 us/ex Waited 28 26.00 ms 2.60% 16.02 us/ex 20.30 ms 2.03% 14.22 us/ex Gotten 28 611.88 ms 61.19% 0.00 ns/io 586.71 ms 58.67% 0.00 ns/io Blocked 28 26.19 ms 2.62% 16.14 us/ex 67.13 ms 6.71% 47.02 us/ex Waited Idle 448.98 ms 44.90% 229.59 us/ex 359.74 ms 35.97% 251.82 us/ex Gotten Idle 0.00 ns 0.00% 0.00 ns/io 0.00 ns 0.00% 0.00 ns/io Blocked Idle 550.66 ms 55.07% 281.58 us/ex 640.01 ms 64.00% 448.01 us/ex Waited 41 1.40 ms 0.14% 54.30 us/ex 964.77 us 0.10% 57.33 us/ex Gotten 41 459.20 ms 45.92% 0.00 ns/io 470.01 ms 47.00% 0.00 ns/io Blocked 41 1.94 ms 0.19% 75.09 us/ex 11.80 ms 1.18% 701.16 us/ex Waited 13 466.75 ms 46.67% 863.83 us/ex 536.81 ms 53.68% 1.06 ms/ex Gotten 13 0.00 ns 0.00% 0.00 ns/io 0.00 ns 0.00% 0.00 ns/io Blocked 13 8.52 ms 0.85% 15.77 us/ex 8.46 ms 0.85% 16.75 us/ex Waited 49 568.29 us 0.06% 34.60 us/ex 444.77 us 0.04% 31.72 us/ex Gotten 49 546.79 ms 54.68% 0.00 ns/io 560.84 ms 56.08% 0.00 ns/io Blocked 49 1.13 ms 0.11% 69.04 us/ex 6.18 ms 0.62% 441.01 us/ex Waited * 99.80% 99.84%
上記の出力例では、物理 CPU 0 に関する情報が表示されます。つまり、CPU=0 がさまざまなドメインでどのように使用されているか、および最後の 1 秒と 10 秒でどのくらいの時間が使用されたかが表示されます。最初の列はドメイン ID を報告します – 0 は Dom-0 を指します。
ドメインごとに 3 行が出力されます:
- 1 行目:Gotten =CPU 時間の量/ドメインで CPU が実行されている割合。
- 2 行目:ブロック =睡眠時間 / パーセンテージ
- 3 行目:待機 =ドメインが待機状態にある CPU 時間/割合。
「p」または「n」キーを押して、前/次の物理 CPU の情報を表示します。
Xenmon.py の使用法:
usage: xenmon.py [options]
options:
-h, --help show this help message and exit
-l, --live show the ncurses live monitoring frontend (default)
-n, --notlive write to file instead of live monitoring
-p PREFIX, --prefix=PREFIX
prefix to use for output files
-t DURATION, --time=DURATION
stop logging to file after this much time has elapsed
(in seconds). set to 0 to keep logging indefinitely
-i INTERVAL, --interval=INTERVAL
interval for logging (in ms)
--ms_per_sample=MSPERSAMPLE
determines how many ms worth of data goes in a sample
--cpu=CPU specifies which cpu to display data for
--allocated Display allocated time for each domain
--noallocated Don't display allocated time for each domain
--blocked Display blocked time for each domain
--noblocked Don't display blocked time for each domain
--waited Display waiting time for each domain
--nowaited Don't display waiting time for each domain
--excount Display execution count for each domain
--noexcount Don't display execution count for each domain
--iocount Display I/O count for each domain
--noiocount Don't display I/O count for each domain