OpenVZ · 3 min read · Jan 04, 2026

Répartition Équitable des Ressources Entre les VMs OpenVZ Avec vzsplit

Répartition Équitable des Ressources Entre les VMs OpenVZ Avec vzsplit

Version 1.0
Auteur : Falko Timme

Ce court guide montre comment vous pouvez répartir les ressources de votre hôte OpenVZ de manière équitable entre plusieurs machines virtuelles à l’aide de vzsplit. vzsplit génère un fichier de configuration d’exemple de conteneur avec un certain ensemble de paramètres de contrôle des ressources système que vous pouvez ensuite appliquer à vos machines virtuelles.

Je ne donne aucune garantie que cela fonctionnera pour vous !

Utilisation de vzsplit

Jetez un œil à

man vzsplit

pour en savoir plus sur son utilisation.

Supposons maintenant que nous souhaitons exécuter 5 machines virtuelles sur l’hôte OpenVZ. Nous appelons vzsplit comme suit :

vzsplit -n 5 -f max-limits

-n 5 spécifie le nombre de machines virtuelles.

server1:~# vzsplit -n 5 -f max-limits  
La taille optimale de l'espace d'échange est de 2022 Mo, deux fois plus grande que la taille de la RAM
AVERTISSEMENT : La taille minimale recommandée de la partition contenant /var/lib/vz/private/ est de 20 Go !  
Le fichier de configuration /etc/vz/conf/ve-max-limits.conf-sample a été créé  
server1:~#

Comme vous le voyez, cela a créé le fichier /etc/vz/conf/ve-max-limits.conf-sample qui contient les valeurs maximales des paramètres de configuration pour chacune des 5 machines virtuelles. Jetez un œil à ce fichier :

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

| # Fichier de configuration généré par vzsplit pour 5 conteneurs # sur HN avec un montant total de mémoire physique de 1011 Mo # mémoire faible 883 Mo, taille de swap 2047 Mo, Max treads 8000 # Niveau d'engagement des ressources 0 : # Distribution gratuite des ressources. Tous les paramètres peuvent être augmentés # Paramètres principaux NUMPROC="1600:1600" AVNUMPROC="452:452" NUMTCPSOCK="1600:1600" NUMOTHERSOCK="1600:1600" VMGUARPAGES="135985:2147483647" # Paramètres secondaires KMEMSIZE="37052743:40758017" TCPSNDBUF="5797314:12350914" TCPRCVBUF="5797314:12350914" OTHERSOCKBUF="2898657:9452257" DGRAMRCVBUF="2898657:2898657" OOMGUARPAGES="135985:2147483647" PRIVVMPAGES="155342:170876" # Paramètres auxiliaires 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" |

Comme vous le voyez, ce fichier ne contient pas de paramètres spécifiques à la VM tels que le nom d’hôte, l’adresse IP, les serveurs de noms, etc. ce qui a du sens car nous ne voulons pas écraser ces paramètres.

Supposons maintenant que nous souhaitons appliquer ces paramètres à notre VM avec l’ID 101. Voici comment nous le faisons :

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

Ensuite, vous pouvez démarrer/redémarrer la VM 101 :

vzctl start 101

Vous pourriez voir quelque chose comme ceci :

server1:~# vzctl start 101  
Démarrage du conteneur ...  
vzquota : (avertissement) block_hard_limit [129115] < block_current_usage [139856]  
Le conteneur est monté  
Ajout d'adresse(s) IP : 192.168.0.101  
bash: ligne 402: printf: erreur d'écriture : Quota de disque dépassé  
bash: ligne 416: printf: erreur d'écriture : Quota de disque dépassé  
bash: ligne 421: echo: erreur d'écriture : Quota de disque dépassé  
bash: ligne 447: printf: erreur d'écriture : Quota de disque dépassé  
Définition des unités CPU : 8587  
Configurer meminfo : 155342  
Définir le nom d'hôte : test.example.com  
awk: échec de la fermeture du fichier /dev/stdout (Quota de disque dépassé)  
ERREUR : Impossible de changer le fichier /etc/hosts  
vzquota : (avertissement) block_hard_limit [129015] < block_current_usage [139856]  
Démarrage du conteneur en cours...  
server1:~#

Pour une raison quelconque, vzsplit a calculé une taille de disque incorrecte. Vous pouvez corriger cela comme suit (cela définira une taille de disque avec une limite douce de 10 Go et une limite dure de 11 Go - ajustez cela selon vos besoins) :

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

Puis redémarrez la VM :

vzctl restart 101

Vous pouvez jeter un œil aux nouveaux paramètres de la VM comme suit :

vzctl exec 101 cat /proc/user_beancounters
server1:/etc/vz/conf# vzctl exec 101 cat /proc/user_beancounters  
Version : 2.5  
       uid  ressource           retenue    maxretenue    barrière      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#

La colonne failcnt est très importante, elle ne devrait contenir que des zéros ; si ce n’est pas le cas, cela signifie que la VM a besoin de plus de ressources que celles actuellement allouées à la VM.

Pour connaître la mémoire allouée à la VM, exécutez

vzctl exec 101 free
server1:~# vzctl exec 101 free  
             total       utilisé       libre     partagé    tampons     mis en cache  
Mem:        621368       3268     618100          0          0          0  
-/+ tampons/cache:       3268     618100  
Swap:            0          0          0  
server1:~#

Liens

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.