OpenVZ · 3 min read · Jan 04, 2026

Dividiendo Recursos Uniformemente Entre VMs de OpenVZ Con vzsplit

Dividiendo Recursos Uniformemente Entre VMs de OpenVZ Con vzsplit

Versión 1.0
Autor: Falko Timme

Esta breve guía muestra cómo puedes dividir los recursos de tu host OpenVZ uniformemente entre múltiples máquinas virtuales con la ayuda de vzsplit. vzsplit genera un archivo de configuración de contenedor de muestra con un conjunto determinado de parámetros de control de recursos del sistema que luego puedes aplicar a tus máquinas virtuales.

¡No emito ninguna garantía de que esto funcione para ti!

Usando vzsplit

Echa un vistazo a

man vzsplit

para aprender más sobre su uso.

Ahora supongamos que queremos ejecutar 5 máquinas virtuales en el host OpenVZ. Llamamos a vzsplit de la siguiente manera:

vzsplit -n 5 -f max-limits

-n 5 especifica el número de máquinas virtuales.

server1:~# vzsplit -n 5 -f max-limits  
El tamaño óptimo del espacio de intercambio es 2022 Mb, el doble que el tamaño de la RAM
ADVERTENCIA: ¡El tamaño mínimo recomendado de la partición que contiene /var/lib/vz/private/ es 20Gb!  
Se creó la configuración /etc/vz/conf/ve-max-limits.conf-sample  
server1:~#

Como ves, esto ha creado el archivo /etc/vz/conf/ve-max-limits.conf-sample que contiene los valores máximos de la configuración para cada una de las 5 máquinas virtuales. Echa un vistazo a ese archivo:

vi /etc/vz/conf/ve-max-limits.conf-sample

| # Archivo de configuración generado por vzsplit para 5 contenedores # en HN con una cantidad total de memoria física de 1011 Mb # memoria baja 883 Mb, tamaño de intercambio 2047 Mb, Máx hilos 8000 # Nivel de compromiso de recursos 0: # Distribución de recursos libre. Cualquier parámetro puede ser aumentado # Parámetros primarios NUMPROC="1600:1600" AVNUMPROC="452:452" NUMTCPSOCK="1600:1600" NUMOTHERSOCK="1600:1600" VMGUARPAGES="135985:2147483647" # Parámetros secundarios KMEMSIZE="37052743:40758017" TCPSNDBUF="5797314:12350914" TCPRCVBUF="5797314:12350914" OTHERSOCKBUF="2898657:9452257" DGRAMRCVBUF="2898657:2898657" OOMGUARPAGES="135985:2147483647" PRIVVMPAGES="155342:170876" # Parámetros auxiliares LOCKEDPAGES="1809:1809" SHMPAGES="15534:15534" PHYSPAGES="0:2147483647" NUMFILE="14464:14464" NUMFLOCK="1000:1100" NUMPTY="160:160" NUMSIGINFO="1024:1024" DCACHESIZE="8088605:8331264" NUMIPTENT="200:200" DISKSPACE="117286:129015" DISKINODES="110065:121072" CPUUNITS="8587" |

Como ves, este archivo no contiene configuraciones específicas de VM como nombre de host, dirección IP, servidores de nombres, etc. lo cual tiene sentido porque no queremos sobrescribir estas configuraciones.

Ahora digamos que queremos aplicar estas configuraciones a nuestra VM con el ID 101. Así es como lo hacemos:

vzctl set 101 --applyconfig max-limits --save

Después, puedes iniciar/reiniciar la VM 101:

vzctl start 101

Puedes ver algo como esto:

server1:~# vzctl start 101  
Iniciando contenedor ...  
vzquota : (advertencia) block_hard_limit [129115] < block_current_usage [139856]  
El contenedor está montado  
Agregando dirección(es) IP: 192.168.0.101  
bash: línea 402: printf: error de escritura: Cuota de disco excedida  
bash: línea 416: printf: error de escritura: Cuota de disco excedida  
bash: línea 421: echo: error de escritura: Cuota de disco excedida  
bash: línea 447: printf: error de escritura: Cuota de disco excedida  
Configurando unidades de CPU: 8587  
Configurar meminfo: 155342  
Establecer nombre de host: test.example.com  
awk: fallo al cerrar el archivo /dev/stdout (Cuota de disco excedida)  
ERROR: No se puede cambiar el archivo /etc/hosts  
vzquota : (advertencia) block_hard_limit [129015] < block_current_usage [139856]  
Inicio del contenedor en progreso...  
server1:~#

Por alguna razón, vzsplit ha calculado un tamaño de disco incorrecto. Puedes corregir eso de la siguiente manera (esto establecerá un tamaño de disco con un límite suave de 10GB y un límite duro de 11GB - ajusta esto a tus necesidades):

vzctl set 101 --diskspace "10000000:11000000" --save

Luego reinicia la VM:

vzctl restart 101

Puedes echar un vistazo a las nuevas configuraciones para la VM de la siguiente manera:

vzctl exec 101 cat /proc/user_beancounters
server1:/etc/vz/conf# vzctl exec 101 cat /proc/user_beancounters  
Versión: 2.5  
       uid  recurso           sostenido    máximo sostenido    barrera      límite    failcnt  
      101:  kmemsize         340278     580635   37052743   40758017          0  
            lockedpages           0          0       1809       1809          0  
            privvmpages         796       1655     155342     170876          0  
            shmpages              0          0      15534      15534          0  
            dummy                 0          0          0          0          0  
            numproc               5          9       1600       1600          0  
            physpages           486       1060          0 2147483647          0  
            vmguarpages           0          0     135985 2147483647          0  
            oomguarpages        486       1060     135985 2147483647          0  
            numtcpsock            1          2       1600       1600          0  
            numflock              1          2       1000       1100          0  
            numpty                0          1        160        160          0  
            numsiginfo            0          2       1024       1024          0  
            tcpsndbuf          8928          0    5797314   12350914          0  
            tcprcvbuf         16384          0    5797314   12350914          0  
            othersockbuf       2232       3624    2898657    9452257          0  
            dgramrcvbuf           0          0    2898657    2898657          0  
            numothersock          1          3       1600       1600          0  
            dcachesize            0          0    8088605    8331264          0  
            numfile             129        193      14464      14464          0  
            dummy                 0          0          0          0          0  
            dummy                 0          0          0          0          0  
            dummy                 0          0          0          0          0  
            numiptent            10         10        200        200          0  
server1:/etc/vz/conf#

La columna failcnt es muy importante, debería contener solo ceros; si no lo hace, esto significa que la vm necesita más recursos de los que actualmente están asignados a la VM.

Para averiguar sobre la memoria asignada a la VM, ejecuta

vzctl exec 101 free
server1:~# vzctl exec 101 free  
             total       usado       libre     compartido    buffers     cached  
Mem:        621368       3268     618100          0          0          0  
-/+ buffers/cache:       3268     618100  
Swap:            0          0          0  
server1:~#

Enlaces

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.