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 vzsplitpour 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 RAMAVERTISSEMENT : 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 --saveEnsuite, vous pouvez démarrer/redémarrer la VM 101 :
vzctl start 101Vous 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" --savePuis redémarrez la VM :
vzctl restart 101Vous pouvez jeter un œil aux nouveaux paramètres de la VM comme suit :
vzctl exec 101 cat /proc/user_beancountersserver1:/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 freeserver1:~# 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
- OpenVZ: http://openvz.org
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.