GNU/Linux >> Linux の 問題 >  >> Linux

Oracle VM (XEN) で仮想/物理 CPU 情報を取得する方法

この記事では、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


Linux
  1. LinuxにXen仮想化ソフトウェアをインストールし、virt-managerを使用してVMを起動する方法は?

  2. Linuxシステムが物理システムまたは仮想マシンで実行されているかどうかを確認するにはどうすればよいですか?

  3. CPU使用率を取得する方法

  1. Linuxシステムが物理マシンか仮想マシンかを確認する方法

  2. VMware ゲストの CPU 情報を取得する方法

  3. CPU は、どの物理アドレスがどの仮想アドレスにマップされているかをどのように認識しますか?

  1. 物理アダプタのないマシンで仮想イーサネットインターフェイスを作成するにはどうすればよいですか?

  2. サーバーが仮想か物理かを確認するためのターミナルコマンド?

  3. 仮想マシンの Numa を無効/有効にする方法 (XEN ベース)