CPU Units: Asignación de recursos de CPU en proxmox

Posted by in Linux, virtualización

Proxmox tiene un mecanismo para priorizar la asignación de recursos de CPU a sus contenedores.
De esta manera podemos asegurarnos que las maquinas virtuales más críticas tengan a su disposición recursos de CPU de manera prioritaria.

Hablamos de CPU Units

Este valor viene a ser el peso en computo de CPU para un contenedor o el tiempo de CPU garantizado que se le asigna a una maquina virtual.
A mayor valor, más tiempo de CPU se le concederá un contenedor o Máquina Virtual.

El número máximo que podemos otorgar es 500.000 y el mínimo es 8, siendo el valor predeterminado en proxmox es 1024.

Para configurarlo correctamente es necesario saber cuántas «CPU Units» soporta su sistema  ejecutando en consola vzcpucheck o si estamos en PVE4 pveperf (Fijándonos en los valores CPU BOGOMIPS)

 ~# pveperf

CPU BOGOMIPS: 32001,56
REGEX/SECOND: 789188
HD SIZE: 8.12 GB (/dev/cciss/c0d1p1)
BUFFERED READS: 171.26 MB/sec
AVERAGE SEEK TIME: 6.52 ms
FSYNCS/SECOND: 976.00
DNS EXT: 20.46 ms
DNS INT: 192.69 ms

 

En varios sistemas he comprobado la correspondencia entre las cpu-units totales de que nos muestran los comandos  vzcpucheck y pveperf es de 25/1, por lo que, si ejecutamos pveperf en PVE4 al valor que nos dé los tenemos que multiplicar por 25.

CPU BOGOMIPS: 25543.20
Power of the node: 638580

CPU BOGOMIPS: 8785.32
Power of the node: 219633

CPU BOGOMIPS: 34132,04
Power of the node: 853301

CPU BOGOMIPS: 25543,20
Power of the node: 638580

 

En nuestro caso de 32001.56 x 25 = 800039

Ahora si asigno 1000 unidades a una VM en este nodo, significa que esta máquina está recibiendo 1000 dividido por 800039 y multiplicado por 100 = 0,12% del tiempo de CPU.
Si por ejemplo, queremos asignar al contenedor el 20% del total de tiempo de CPU:
800039 * 20% = 160007,8

CPU UNITS, se puede modificar dentro de la webGUI de proxmox dentro de opciones en contenedor -> Hardware -> CPU Options

Más información:

https://pve.proxmox.com/wiki/Manual:_qm.conf

Proxmox OpenVZ CPU units