Help improving windows vm performance with youtube and plex?

rakali

Active Member
Jan 2, 2020
42
5
28
43
I have a windows VM that is used for playback of youtube and plex and it drops frames and audio gets out of sync. I would like to resolve this if I can. I am wondering if there is a tweak, or a driver for windows that is necessary?

VM is stored on an a ssd. AMD RX580 GPU is pci passthrough connected to a 1080@60 monitor vis hdmi.

CPU is i5-8400 and 6 cores are assigned to this vm. Windows reports this is as 2.81GHz but proxmox shows running at 3800MHz when monitoring with watch grep \"cpu MHz\" /proc/cpuinfo

In windows, cpu and gpu utilisation never shows above 30%. I ran geekbench and it seemed to give a result expected of this cpu.

any advice on tweaks that might improve the experience?

Code:
# cat /etc/pve/qemu-server/101.conf
agent: 1
args: -machine type=q35,kernel_irqchip=on
balloon: 0
bios: ovmf
boot: c
bootdisk: scsi0
cores: 6
cpu: host,hidden=1
efidisk0: local-zfs:vm-101-disk-1,size=128K
hookscript: local:snippets/hackintosh.sh
hostpci0: 01:00,pcie=1,x-vga=on
hostpci1: 00:14.0,pcie=1
hostpci2: 00:1f.3
machine: q35
memory: 8192
name: windows
net0: virtio=,bridge=vmbr1
numa: 1
onboot: 1
ostype: win10
scsi0: local-zfs:vm-101-disk-0,cache=writeback,iothread=1,replicate=0,size=256G,ssd=1
scsihw: virtio-scsi-single
smbios1: uuid=
sockets: 1
startup: order=3,up=60
vga: none
vmgenid:

Code:
# cat /var/lib/vz/snippets/hackintosh.sh
#!/usr/bin/env bash

if [ "$2" == "pre-start" ]
then
# First release devices from their current driver (by their PCI bus IDs)
echo 0000:00:14.0 > /sys/bus/pci/devices/0000:00:14.0/driver/unbind

# Then attach them by ID to VFIO
echo 8086 a2af > /sys/bus/pci/drivers/vfio-pci/new_id
fi

Code:
# pveversion -v
proxmox-ve: 6.1-2 (running kernel: 5.3.13-1-pve)
pve-manager: 6.1-5 (running version: 6.1-5/9bf06119)
pve-kernel-5.3: 6.1-1
pve-kernel-helper: 6.1-1
pve-kernel-5.0: 6.0-11
pve-kernel-5.3.13-1-pve: 5.3.13-1
pve-kernel-5.0.21-5-pve: 5.0.21-10
pve-kernel-5.0.21-2-pve: 5.0.21-7
pve-kernel-5.0.15-1-pve: 5.0.15-1
ceph-fuse: 12.2.11+dfsg1-2.1+b1
corosync: 3.0.2-pve4
criu: 3.11-3
glusterfs-client: 5.5-3
ifupdown: 0.8.35+pve1
ksm-control-daemon: 1.3-1
libjs-extjs: 6.0.1-10
libknet1: 1.13-pve1
libpve-access-control: 6.0-5
libpve-apiclient-perl: 3.0-2
libpve-common-perl: 6.0-10
libpve-guest-common-perl: 3.0-3
libpve-http-server-perl: 3.0-3
libpve-storage-perl: 6.1-3
libqb0: 1.0.5-1
libspice-server1: 0.14.2-4~pve6+1
lvm2: 2.03.02-pve3
lxc-pve: 3.2.1-1
lxcfs: 3.0.3-pve60
novnc-pve: 1.1.0-1
proxmox-mini-journalreader: 1.1-1
proxmox-widget-toolkit: 2.1-2
pve-cluster: 6.1-3
pve-container: 3.0-16
pve-docs: 6.1-3
pve-edk2-firmware: 2.20190614-1
pve-firewall: 4.0-9
pve-firmware: 3.0-4
pve-ha-manager: 3.0-8
pve-i18n: 2.0-3
pve-qemu-kvm: 4.1.1-2
pve-xtermjs: 3.13.2-1
qemu-server: 6.1-4
smartmontools: 7.1-pve1
spiceterm: 3.1-1
vncterm: 1.6-1
zfsutils-linux: 0.8.2-pve2
 
Last edited:
for comparison, i created an ubuntu vm without virtually the same config. pci passthrough, etc.

performance is as expected. no dropped frames or out of sync audio.
 
Last edited: