OpenVZ · 2 min read · Jan 04, 2026
Ressourcen gleichmäßig zwischen OpenVZ-VMs mit vzsplit aufteilen
Ressourcen gleichmäßig zwischen OpenVZ-VMs mit vzsplit aufteilen
Version 1.0
Autor: Falko Timme
Diese kurze Anleitung zeigt, wie Sie die Ressourcen Ihres OpenVZ-Hosts gleichmäßig zwischen mehreren virtuellen Maschinen mit Hilfe von vzsplit aufteilen können. vzsplit generiert eine Beispiel-Container-Konfigurationsdatei mit einer bestimmten Reihe von Systemressourcensteuerungsparametern, die Sie dann auf Ihre virtuellen Maschinen anwenden können.
Ich gebe keine Garantie, dass dies bei Ihnen funktioniert!
Verwendung von vzsplit
Sehen Sie sich an
man vzsplitum mehr über die Verwendung zu erfahren.
Angenommen, wir möchten 5 virtuelle Maschinen auf dem OpenVZ-Host ausführen. Wir rufen vzsplit wie folgt auf:
vzsplit -n 5 -f max-limits-n 5 gibt die Anzahl der virtuellen Maschinen an.
server1:~# vzsplit -n 5 -f max-limits
Die optimale Swap-Speichergröße beträgt 2022 Mb, doppelt so groß wie die RAM-GrößeWARNUNG: Empfohlene minimale Größe der Partition, die /var/lib/vz/private/ enthält, beträgt 20Gb!
Konfiguration /etc/vz/conf/ve-max-limits.conf-sample wurde erstellt
server1:~#Wie Sie sehen, wurde die Datei /etc/vz/conf/ve-max-limits.conf-sample erstellt, die die maximalen Werte der Konfigurationseinstellungen für jede der 5 virtuellen Maschinen enthält. Werfen Sie einen Blick auf diese Datei:
vi /etc/vz/conf/ve-max-limits.conf-sample| # Konfigurationsdatei, die von vzsplit für 5 Container generiert wurde # auf HN mit einer Gesamtmenge an physischem Speicher von 1011 Mb # geringer Speicher 883 Mb, Swap-Größe 2047 Mb, Max. Threads 8000 # Ressourcen-Commit-Level 0: # Freie Ressourcenverteilung. Alle Parameter können erhöht werden # Primäre Parameter NUMPROC="1600:1600" AVNUMPROC="452:452" NUMTCPSOCK="1600:1600" NUMOTHERSOCK="1600:1600" VMGUARPAGES="135985:2147483647" # Sekundäre Parameter KMEMSIZE="37052743:40758017" TCPSNDBUF="5797314:12350914" TCPRCVBUF="5797314:12350914" OTHERSOCKBUF="2898657:9452257" DGRAMRCVBUF="2898657:2898657" OOMGUARPAGES="135985:2147483647" PRIVVMPAGES="155342:170876" # Hilfsparameter 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" |
Wie Sie sehen, enthält diese Datei keine VM-spezifischen Einstellungen wie Hostname, IP-Adresse, Nameserver usw., was sinnvoll ist, da wir diese Einstellungen nicht überschreiben möchten.
Angenommen, wir möchten diese Einstellungen auf unsere VM mit der ID 101 anwenden. So machen wir das:
vzctl set 101 --applyconfig max-limits --saveAnschließend können Sie die VM 101 starten/neustarten:
vzctl start 101Sie könnten etwas wie folgt sehen:
server1:~# vzctl start 101
Container wird gestartet ...
vzquota : (Warnung) block_hard_limit [129115] < block_current_usage [139856]
Container ist gemountet
IP-Adresse(n) hinzufügen: 192.168.0.101
bash: Zeile 402: printf: Schreibfehler: Festplattenspeicher überschritten
bash: Zeile 416: printf: Schreibfehler: Festplattenspeicher überschritten
bash: Zeile 421: echo: Schreibfehler: Festplattenspeicher überschritten
bash: Zeile 447: printf: Schreibfehler: Festplattenspeicher überschritten
CPU-Einheiten festlegen: 8587
Konfigurieren von meminfo: 155342
Hostname festlegen: test.example.com
awk: close fehlgeschlagen bei Datei /dev/stdout (Festplattenspeicher überschritten)
FEHLER: Kann Datei /etc/hosts nicht ändern
vzquota : (Warnung) block_hard_limit [129015] < block_current_usage [139856]
Containerstart läuft...
server1:~#Aus irgendeinem Grund hat vzsplit eine falsche Festplattengröße berechnet. Sie können dies wie folgt korrigieren (dies setzt eine Festplattengröße mit einem Soft-Limit von 10GB und einem Hard-Limit von 11GB - passen Sie dies nach Ihren Bedürfnissen an):
vzctl set 101 --diskspace "10000000:11000000" --saveDann starten Sie die VM neu:
vzctl restart 101Sie können die neuen Einstellungen für die VM wie folgt einsehen:
vzctl exec 101 cat /proc/user_beancountersserver1:/etc/vz/conf# vzctl exec 101 cat /proc/user_beancounters
Version: 2.5
uid Ressource gehalten maxgehalten Barriere Limit Fehlanzahl
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#Die Spalte failcnt ist sehr wichtig, sie sollte nur Nullen enthalten; wenn nicht, bedeutet dies, dass die VM mehr Ressourcen benötigt, als derzeit der VM zugewiesen sind.
Um die zugewiesene Speichermenge für die VM zu erfahren, führen Sie aus
vzctl exec 101 freeserver1:~# vzctl exec 101 free
gesamt verwendet frei geteilt Puffer Zwischenspeicher
Mem: 621368 3268 618100 0 0 0
-/+ Puffer/Zwischenspeicher: 3268 618100
Swap: 0 0 0
server1:~#Links
- OpenVZ: http://openvz.org
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.