CPU Units: Asignación de recursos de CPU en proxmox
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,56REGEX/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