Esta publicación explica cómo obtener el uso de la CPU virtual o física de un servidor Oracle VM, incluido el uso real de la CPU y el tiempo de ejecución de los dominios invitados. El uso de CPU específico del invitado (Dom-U) se puede obtener ejecutando comandos en el invitado mismo, por ejemplo; superior, ps y sar.
Sin embargo, si desea obtener un uso específico de la CPU, incluido el dominio/hipervisor de administración del servidor Oracle VM (Dom-0), las siguientes utilidades de xen-tools están disponibles para ejecutarse en el servidor Oracle VM:
- /usr/sbin/xentop-v
- /usr/sbin/xenmon.py
1. xentop
El comando xentop -v muestra información de la CPU virtual, por ejemplo:
# 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
En el ejemplo anterior, los dominios Domain-0, 4474_EL5U2 y 4511_EL564 utilizan cada uno dos CPU virtuales, mientras que todos los demás solo utilizan una CPU virtual. Domain Domain-0 utiliza un tiempo de CPU total de 87787 segundos; 57 819 segundos en VCPU0 y 29 968 segundos en VCPU1.
Uso de 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
Los parámetros significan:
Parámetros | significados |
---|---|
CPU (seg) | Tiempo de CPU que el sistema operativo invitado ha consumido (acumulado) |
CPU(%) | “Porcentaje de CPU que consume actualmente el sistema operativo invitado. Nota 1:Esto se calcula como CPU (%) =Número real de CPU asignada * Uso real de la CPU en el sistema operativo invitado (0-100 %). Por lo tanto, esto podría llegar hasta el 300 % cuando se asignan 3 CPU al sistema operativo invitado. “”Número de CPU real asignado”” no es el número de CPU virtual asignado al sistema operativo invitado, sino el número de CPU real asignado al sistema operativo invitado, ya que debe ser de hasta el 200 % cuando los núcleos de CPU físicos son 2, incluso si las VCPU están asignadas al sistema operativo invitado. Los SO invitados son 3 o más. Nota 2:siempre es 0,0% en la primera salida de xentop, ya que se calcula dividiendo el intervalo de las actualizaciones. Por lo tanto, la opción ""-i"" debe configurarse como 2 o más para obtener la CPU correcta (%). Nota 3:Esto solo muestra el uso de la CPU en el sistema operativo host para los sistemas operativos invitados, por lo tanto, esto podría ser diferente del uso de la CPU (por ejemplo, que muestra ""superior"") en los sistemas operativos invitados". |
MEM(k) | Tamaño de la memoria en Kbytes que ocupa el sistema operativo invitado en la memoria del sistema operativo host. Para Domain0, este es el valor igual de dom0_mem=especificado en /etc/grub.conf del sistema operativo host y también el valor igual de "memory =" en vm.cfg para el sistema operativo invitado. ex. dom0_mem=1024M muestra 1048576(kB) para MEM(k) para el sistema operativo host. |
MEM(%) | Tamaño de la memoria en porcentaje que ocupa el sistema operativo invitado en la memoria del sistema operativo host |
MAXMEM(k) | Tamaño máximo de memoria en Kbytes que el sistema operativo invitado podría ocupar en la memoria del sistema operativo host |
MÁX.MEM(%) | Tamaño máximo de memoria en porcentaje que ocupa el sistema operativo invitado en la memoria del sistema operativo host |
VCPUS | Número de CPU virtual que se asigna al sistema operativo huésped |
REDES | Número de interfaz de red virtual que se asigna al sistema operativo invitado |
NETTX(k) | tráfico de red en Kbyte que envía el sistema operativo invitado (acumulado) |
NETRX(k) | tráfico de red en Kbyte que recibe el sistema operativo invitado (acumulado) |
VBDS | Número de dispositivo de bloque virtual (=almacenamiento) que se asigna al sistema operativo invitado |
VBD_OO | número bloqueado de E/S desde/hacia el sistema operativo huésped |
VBD_RD | leer el número de solicitud del sistema operativo invitado (acumulado) |
VBD_WR | escriba el número de solicitud del sistema operativo invitado (acumulado) |
VBD_RSECT | lea el número de sector del sistema operativo invitado (acumulado), el antiguo xentop no muestra esto |
VBD_WSECT | escriba el número de sector del sistema operativo huésped (acumulado), el antiguo xentop no muestra esto |
SSID | N/A |
2. Xenmon.py
El comando xenmon.py muestra información específica de la CPU física, por ejemplo:
# /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%
El resultado del ejemplo anterior muestra información sobre la CPU física 0, es decir, cómo varios dominios utilizan CPU=0 y cuánto tiempo se ha utilizado en los últimos 1 y 10 segundos. La primera columna informa el ID de dominio:0 se refiere a Dom-0.
Se imprimen tres líneas para cada dominio:
- 1ra fila:Obtenido =cantidad de tiempo de CPU/porcentaje que la CPU se está ejecutando en el dominio.
- Segunda fila:Bloqueado =cantidad de tiempo/porcentaje de sueño.
- 3ra fila:En espera =cantidad de tiempo de CPU/porcentaje en el que el dominio está en estado de espera.
Presione la tecla 'p' o 'n' para mostrar información de la CPU física anterior/siguiente.
Uso de 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