OpenVZ · 3 min read · Jan 04, 2026

Dividindo Recursos Uniformemente Entre VMs OpenVZ Com vzsplit

Dividindo Recursos Uniformemente Entre VMs OpenVZ Com vzsplit

Versão 1.0
Autor: Falko Timme

Este guia curto mostra como você pode dividir os recursos do seu host OpenVZ uniformemente entre várias máquinas virtuais com a ajuda do vzsplit. O vzsplit gera um arquivo de configuração de contêiner de exemplo com um determinado conjunto de parâmetros de controle de recursos do sistema que você pode então aplicar às suas máquinas virtuais.

Não dou nenhuma garantia de que isso funcionará para você!

Usando vzsplit

Dê uma olhada em

man vzsplit

para saber mais sobre seu uso.

Agora vamos supor que queremos executar 5 máquinas virtuais no host OpenVZ. Chamamos o vzsplit da seguinte forma:

vzsplit -n 5 -f max-limits

-n 5 especifica o número de máquinas virtuais.

server1:~# vzsplit -n 5 -f max-limits  
O tamanho ideal do espaço de swap é 2022 Mb, duas vezes maior que o tamanho da RAM
WARNING: O tamanho mínimo recomendado da partição que contém /var/lib/vz/private/ é 20Gb!  
Config /etc/vz/conf/ve-max-limits.conf-sample foi criada  
server1:~#

Como você pode ver, isso criou o arquivo /etc/vz/conf/ve-max-limits.conf-sample que contém os valores máximos das configurações para cada uma das 5 máquinas virtuais. Dê uma olhada nesse arquivo:

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

| # Arquivo de configuração gerado pelo vzsplit para 5 contêineres # no HN com a quantidade total de memória física 1011 Mb # memória baixa 883 Mb, tamanho do swap 2047 Mb, Máx. threads 8000 # Nível de compromisso de recursos 0: # Distribuição de recursos livre. Quaisquer parâmetros podem ser aumentados # Parâmetros primários NUMPROC="1600:1600" AVNUMPROC="452:452" NUMTCPSOCK="1600:1600" NUMOTHERSOCK="1600:1600" VMGUARPAGES="135985:2147483647" # Parâmetros secundários 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 você pode ver, este arquivo não contém configurações específicas da VM, como nome do host, endereço IP, servidores de nomes, etc., o que faz sentido porque não queremos sobrescrever essas configurações.

Agora vamos supor que queremos aplicar essas configurações à nossa VM com o ID 101. É assim que fazemos:

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

Depois, você pode iniciar/reiniciar a VM 101:

vzctl start 101

Você pode ver algo assim:

server1:~# vzctl start 101  
Iniciando contêiner ...  
vzquota : (aviso) block_hard_limit [129115] < block_current_usage [139856]  
Contêiner está montado  
Adicionando endereço(s) IP: 192.168.0.101  
bash: linha 402: printf: erro de escrita: Cota de disco excedida  
bash: linha 416: printf: erro de escrita: Cota de disco excedida  
bash: linha 421: echo: erro de escrita: Cota de disco excedida  
bash: linha 447: printf: erro de escrita: Cota de disco excedida  
Configurando unidades de CPU: 8587  
Configurar meminfo: 155342  
Definir nome do host: test.example.com  
awk: falha ao fechar o arquivo /dev/stdout (Cota de disco excedida)  
ERRO: Não é possível alterar o arquivo /etc/hosts  
vzquota : (aviso) block_hard_limit [129015] < block_current_usage [139856]  
Início do contêiner em progresso...  
server1:~#

Por algum motivo, o vzsplit calculou um tamanho de disco errado. Você pode corrigir isso da seguinte forma (isso definirá um tamanho de disco com um limite suave de 10GB e um limite rígido de 11GB - ajuste isso conforme suas necessidades):

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

Então reinicie a VM:

vzctl restart 101

Você pode dar uma olhada nas novas configurações da VM da seguinte forma:

vzctl exec 101 cat /proc/user_beancounters
server1:/etc/vz/conf# vzctl exec 101 cat /proc/user_beancounters  
Versão: 2.5  
       uid  recurso           mantido    maxheld    barreira      limite    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#

A coluna failcnt é muito importante, ela deve conter apenas zeros; se não contiver, isso significa que a VM precisa de mais recursos do que os atualmente alocados à VM.

Para descobrir sobre a memória alocada à VM, execute

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

Links

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.