Moin,
Mir ist mal wieder aufgefallen wieviel RAM KVM verschlingt obwohl der Gast selbst nicht so viel RAM benutzt. Das hatte ich sonst vorallem bei FreeBSD Gästen beobachet, aber jetzt fällt es mir auch bei meiner Debian 10 VM auf.
Also 5,3GiB benutzt und 10GiB unbenutzt die eigentlich von KVM freigegeben werden könnten.
htop auf dem Host:
Geht hier um meinen Minecraft Server. Der hat 16GiB RAM zugeteilt bekommen und nutzt davon 11,5G, also über das doppelte was der Gast in dessen Prozess tatsächlich benutzt.
Qemu-guest-agent ist installiert und für die VM aktiviert. Ballooning ist aktiviert. KSM ist auf dem Host ab 60% aktiv, also auch in dem Fall, weil der RAM vom Host um die 80% ausgelastet ist.
Zugeteilten RAM selbst kann ich leider nicht verringern, weil je nach Last zwischen 5GB und 15GB von Prozessen verwenden werden. Oft läuft der Gast aber halt über Wochen mit nur sehr wenig RAM Auslastung, da ist es dann schade wenn Balloning anderen VMs den RAM abzieht obwohl die Miencraft VM da permanent 10GB RAM verschwendet. Ich kann für die Minecraft VM aber auch kein "Min RAM" für Ballooning setzen, da dies zu OOM führen würde, wenn da doch selten mal was los ist und wirklich die vollen 16GB gebraucht werden. Das RAM Overprovisioning immer etwas kritisch ist, ist mir schon klar, aber alle meine Server haben bereits den RAM voll ausgebaut und weitere Homeserver sind leider nicht im Budget.
Kann man da irgendwas optimieren, dass da KVM unbenötigten RAM irgendwie freigibt?
Hier die VM Einstellungen:
Mir ist mal wieder aufgefallen wieviel RAM KVM verschlingt obwohl der Gast selbst nicht so viel RAM benutzt. Das hatte ich sonst vorallem bei FreeBSD Gästen beobachet, aber jetzt fällt es mir auch bei meiner Debian 10 VM auf.
free -h
im Gast:
Code:
total used free shared buff/cache available
Mem: 15Gi 2.9Gi 10Gi 12Mi 2.4Gi 12Gi
Swap: 2.0Gi 0B 2.0Gi
htop auf dem Host:
Geht hier um meinen Minecraft Server. Der hat 16GiB RAM zugeteilt bekommen und nutzt davon 11,5G, also über das doppelte was der Gast in dessen Prozess tatsächlich benutzt.
Qemu-guest-agent ist installiert und für die VM aktiviert. Ballooning ist aktiviert. KSM ist auf dem Host ab 60% aktiv, also auch in dem Fall, weil der RAM vom Host um die 80% ausgelastet ist.
Zugeteilten RAM selbst kann ich leider nicht verringern, weil je nach Last zwischen 5GB und 15GB von Prozessen verwenden werden. Oft läuft der Gast aber halt über Wochen mit nur sehr wenig RAM Auslastung, da ist es dann schade wenn Balloning anderen VMs den RAM abzieht obwohl die Miencraft VM da permanent 10GB RAM verschwendet. Ich kann für die Minecraft VM aber auch kein "Min RAM" für Ballooning setzen, da dies zu OOM führen würde, wenn da doch selten mal was los ist und wirklich die vollen 16GB gebraucht werden. Das RAM Overprovisioning immer etwas kritisch ist, ist mir schon klar, aber alle meine Server haben bereits den RAM voll ausgebaut und weitere Homeserver sind leider nicht im Budget.
Kann man da irgendwas optimieren, dass da KVM unbenötigten RAM irgendwie freigibt?
Hier die VM Einstellungen:
cat /etc/pve/qemu-server/111.conf
Code:
agent: 1
balloon: 16000
boot: cdn
bootdisk: scsi0
cores: 8
cpu: host,flags=+aes
ide2: none,media=cdrom
memory: 16384
name: Minecraft
net0: virtio=1A:6D:3D:9E:21:D6,bridge=vmbr42,firewall=1
numa: 0
ostype: l26
scsi0: VMpool_VLT_VM:vm-111-disk-0,cache=none,discard=on,iothread=1,size=96G,ssd=1
scsi1: VMpool_VLT_VM:vm-111-disk-1,cache=none,size=2G,ssd=1
scsihw: virtio-scsi-single
smbios1: uuid=fb35b063-fa70-4019-869e-e2ea7117d3e0
sockets: 1
vmgenid: 7bf7e311-6570-4ec4-a4ed-f5030ac3123e
vmstatestorage: VMpool7_VMSS
pveversion -v
:
Code:
proxmox-ve: 6.4-1 (running kernel: 5.4.128-1-pve)
pve-manager: 6.4-13 (running version: 6.4-13/9f411e79)
pve-kernel-5.4: 6.4-5
pve-kernel-helper: 6.4-5
pve-kernel-5.4.128-1-pve: 5.4.128-2
pve-kernel-5.4.124-1-pve: 5.4.124-2
pve-kernel-5.4.119-1-pve: 5.4.119-1
ceph-fuse: 12.2.11+dfsg1-2.1+b1
corosync: 3.1.2-pve1
criu: 3.11-3
glusterfs-client: 5.5-3
ifupdown: residual config
ifupdown2: 3.0.0-1+pve4~bpo10
ksmtuned: 4.20150325+b1
libjs-extjs: 6.0.1-10
libknet1: 1.20-pve1
libproxmox-acme-perl: 1.1.0
libproxmox-backup-qemu0: 1.1.0-1
libpve-access-control: 6.4-3
libpve-apiclient-perl: 3.1-3
libpve-common-perl: 6.4-3
libpve-guest-common-perl: 3.1-5
libpve-http-server-perl: 3.2-3
libpve-storage-perl: 6.4-1
libqb0: 1.0.5-1
libspice-server1: 0.14.2-4~pve6+1
lvm2: 2.03.02-pve4
lxc-pve: 4.0.6-2
lxcfs: 4.0.6-pve1
novnc-pve: 1.1.0-1
proxmox-backup-client: 1.1.13-2
proxmox-mini-journalreader: 1.1-1
proxmox-widget-toolkit: 2.6-1
pve-cluster: 6.4-1
pve-container: 3.3-6
pve-docs: 6.4-2
pve-edk2-firmware: 2.20200531-1
pve-firewall: 4.1-4
pve-firmware: 3.2-4
pve-ha-manager: 3.1-1
pve-i18n: 2.3-1
pve-qemu-kvm: 5.2.0-6
pve-xtermjs: 4.7.0-3
qemu-server: 6.4-2
smartmontools: 7.2-pve2
spiceterm: 3.1-1
vncterm: 1.6-2
zfsutils-linux: 2.0.5-pve1~bpo10+1
Last edited: