In diesem Beitrag wird erläutert, wie Sie die virtuelle oder physische CPU-Auslastung eines Oracle VM-Servers abrufen, einschließlich der tatsächlichen CPU-Auslastung und Laufzeit von Gastdomänen. Gastspezifische (Dom-U) CPU-Auslastung kann zum Beispiel durch Ausführen von Befehlen auf dem Gast selbst abgerufen werden; top, ps und sar.
Wenn Sie jedoch eine bestimmte CPU-Auslastung erhalten möchten, einschließlich der der Oracle VM Server-Verwaltungsdomäne/des Hypervisors (Dom-0), stehen die folgenden xen-tools-Dienstprogramme zur Ausführung auf dem Oracle VM-Server zur Verfügung:
- /usr/sbin/xentop -v
- /usr/sbin/xenmon.py
1. xentop
Der Befehl xentop -v zeigt virtuelle CPU-Informationen an, z. B.:
# 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
Im obigen Beispiel verwenden die Domänen Domain-0, 4474_EL5U2 und 4511_EL564 jeweils zwei virtuelle CPUs, während alle anderen nur eine virtuelle CPU verwenden. Domäne Domäne-0 verwendet eine Gesamt-CPU-Zeit von 87787 Sekunden; 57.819 Sekunden auf VCPU0 und 29.968 Sekunden auf VCPU1.
Xentop-Nutzung:
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
Die Parameter bedeuten:
Parameter | Bedeutungen |
---|---|
CPU (Sek.) | CPU-Zeit, die das Gastbetriebssystem verbraucht hat (kumuliert) |
CPU(%) | „CPU-Prozentsatz, den das Gastbetriebssystem derzeit verbraucht. Hinweis 1:Dies wird berechnet als CPU (%) =Tatsächlich zugewiesene CPU-Nummer * Tatsächliche CPU-Auslastung auf dem Gastbetriebssystem (0-100 %). Dies kann also bis zu 300 % betragen, wenn dem Gastbetriebssystem 3 CPUs zugewiesen sind. „“Actuall Assigned CPU#““ ist nicht die dem Gastbetriebssystem zugewiesene virtuelle CPU-Nummer, sondern die dem Gastbetriebssystem zugewiesene tatsächliche CPU-Nummer, da sie bis zu 200 % betragen sollte, wenn die physischen CPU-Kerne 2 sind, selbst wenn VCPUs zugewiesen sind Gastbetriebssysteme sind 3 oder mehr. Hinweis 2:Am 1. xentop-Ausgang ist dies immer 0,0 %, da dies durch Teilen des Intervalls der Aktualisierungen berechnet wird. Daher muss die Option „“-i““ auf 2 oder mehr gesetzt werden, um die korrekte CPU (%) zu erhalten. Hinweis 3:Dies zeigt nur die CPU-Auslastung auf dem Host-Betriebssystem für die Gast-Betriebssysteme, daher kann sich diese von der CPU-Auslastung (z. B. die „oben“ zeigt) auf den Gast-Betriebssystemen unterscheiden.“ |
MEM(k) | Speichergröße in KByte, die das Gastbetriebssystem auf dem Hostbetriebssystem belegt. Für Domain0 ist dies der gleiche Wert von dom0_mem=, der in /etc/grub.conf des Hostbetriebssystems angegeben ist, und auch der gleiche Wert von „memory =“ in vm.cfg für das Gastbetriebssystem. ex. dom0_mem=1024M zeigt 1048576(kB) für MEM(k) für das Host-Betriebssystem. |
MEM(%) | Speichergröße in Prozent, die das Gastbetriebssystem auf dem Hostbetriebssystem belegt |
MAXMEM(k) | Maximale Speichergröße in KB, die das Gastbetriebssystem auf dem Hostbetriebssystemspeicher belegen kann |
MAXMEM(%) | Maximale Speichergröße in Prozent, die das Gastbetriebssystem auf dem Hostbetriebssystemspeicher belegt |
VCPUS | Virtuelle CPU-Nummer, die dem Gastbetriebssystem zugewiesen ist |
NETS | Virtuelle Netzwerkschnittstellennummer, die dem Gastbetriebssystem zugewiesen ist |
NETTX(k) | Netzwerkverkehr in KByte, den das Gastbetriebssystem sendet (kumuliert) |
NETRX(k) | Netzwerkverkehr in KByte, den das Gastbetriebssystem empfängt (kumuliert) |
VBDS | Nummer des virtuellen Blockgeräts (=Speicher), die dem Gastbetriebssystem zugewiesen ist |
VBD_OO | blockierte Anzahl von E/A vom/zum Gastbetriebssystem |
VBD_RD | Anforderungsnummer vom Gastbetriebssystem lesen (kumuliert) |
VBD_WR | Anforderungsnummer vom Gastbetriebssystem schreiben (kumuliert) |
VBD_RSECT | Sektornummer aus dem Gastbetriebssystem lesen (kumuliert), altes Xentop zeigt dies nicht an |
VBD_WSECT | Sektornummer vom Gastbetriebssystem schreiben (kumuliert), altes Xentop zeigt dies nicht |
SSID | Nicht zutreffend |
2. Xenmon.py
Der Befehl xenmon.py zeigt spezifische physische CPU-Informationen an, z. B.:
# /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%
Die obige Beispielausgabe zeigt Informationen über die physische CPU 0 an, d. h. wie CPU=0 von verschiedenen Domänen verwendet wird und wie lange sie innerhalb der letzten 1 und 10 Sekunden verwendet wurde. Die erste Spalte gibt die Domain-ID an – 0 bezieht sich auf Dom-0.
Für jede Domäne werden drei Zeilen gedruckt:
- 1. Zeile:Gotten =Betrag der CPU-Zeit/Prozentsatz, den die CPU auf der Domain ausführt.
- Zweite Zeile:Blockiert =Schlafzeit/Prozentsatz.
- 3. Zeile:Waited =Betrag der CPU-Zeit/Prozentsatz, den die Domain im Wartezustand ist.
Drücken Sie die Taste „p“ oder „n“, um Informationen für die vorherige/nächste physische CPU anzuzeigen.
Verwendung von 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