Windows 10 VM CPU frequencies underperforming?

sinykkskizm

New Member
Feb 7, 2021
7
0
1
37
I'm new to proxmox and experimenting with how well Windows 10 will run on proxmox on my PC. I'm facing a bit of an issue with the CPU frequencies either showing incorrectly or something is wrong in my configuration.

I have my CPU overclocked in my BIOS to 4900Mhz. The CPU has 8 cores, all of which are passed to the VM through proxmox. HWinfo64 shows that that each core is running at 750Mhz and when I run a stress test, It goes up to about 1100Mhz.

Running userbenchmark gets my CPU in the 66th percentile vs 99 percentile when Windows was directly installed. This is quite a bit of a performance drop.
In proxmox, I have CPU set to Host

Detailed below are my Host specs and VM .conf file.



Basic Host Specs:

  • Intel i7-9700k Overclocked to 4900Mhz
  • 32Gb ram running XMP profile at 3200
  • 2 x 1Tb NVME drives
  • 1 x 1Tb SSD
  • Nvidia RTX 2080ti

Detailed Host Specs:

Code:
System:    Host: sy Kernel: 5.4.78-2-pve x86_64 bits: 64 compiler: gcc v: 8.3.0 Console: tty 0
           Distro: Debian GNU/Linux 10 (buster)
Machine:   Type: Desktop Mobo: ASRock model: Z390 Phantom Gaming-ITX/ac serial: <filter> UEFI: American Megatrends v: P4.40
           date: 11/26/2019
CPU:       Topology: 8-Core model: Intel Core i7-9700K bits: 64 type: MCP arch: Kaby Lake rev: D L2 cache: 12.0 MiB
           flags: lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 57600
           Speed: 4701 MHz min/max: 800/4900 MHz Core speeds (MHz): 1: 4700 2: 4700 3: 4700 4: 4700 5: 4700 6: 4700 7: 4700
           8: 4626
Graphics:  Device-1: Intel vendor: ASRock driver: N/A bus ID: 00:02.0
           Device-2: NVIDIA TU102 [GeForce RTX 2080 Ti] vendor: eVga.com. driver: vfio-pci v: 0.2 bus ID: 01:00.0
           Display: tty server: N/A driver: vfio-pci tty: 237x64
           Message: Advanced graphics data unavailable in console for root.
Audio:     Device-1: Intel Cannon Lake PCH cAVS vendor: ASRock driver: snd_hda_intel v: kernel bus ID: 00:1f.3
           Device-2: NVIDIA TU102 High Definition Audio vendor: eVga.com. driver: vfio-pci v: 0.2 bus ID: 01:00.1
           Device-3: Logitech HD Pro Webcam C920 type: USB driver: snd-usb-audio,uvcvideo bus ID: 1-5:2
           Sound Server: ALSA v: k5.4.78-2-pve
Network:   Device-1: Intel Wireless-AC 9560 [Jefferson Peak] driver: iwlwifi v: kernel port: 4000 bus ID: 00:14.3
           IF: wlo1 state: down mac: <filter>
           Device-2: Intel Ethernet I219-V vendor: ASRock driver: e1000e v: 3.2.6-k port: efa0 bus ID: 00:1f.6
           IF: eno2 state: up speed: 1000 Mbps duplex: full mac: <filter>
           IF-ID-1: tap100i0 state: unknown speed: 10 Mbps duplex: full mac: <filter>
           IF-ID-2: vmbr0 state: up speed: N/A duplex: N/A mac: <filter>
Drives:    Local Storage: total: 1.84 TiB used: 260.84 GiB (13.8%)
           ID-1: /dev/nvme0n1 vendor: Seagate model: XPG GAMMIX S11 Pro size: 953.87 GiB
           ID-2: /dev/nvme1n1 vendor: A-Data model: SX8200PNP size: 953.87 GiB
           ID-3: /dev/sda vendor: Western Digital model: WDS100T2B0A-00SM50 size: 931.51 GiB temp: 26 C
Partition: ID-1: / size: 61.02 GiB used: 2.67 GiB (4.4%) fs: ext4 dev: /dev/dm-1
           ID-2: swap-1 size: 8.00 GiB used: 744.8 MiB (9.1%) fs: swap dev: /dev/dm-0
Sensors:   System Temperatures: cpu: 40.0 C mobo: N/A
           Fan Speeds (RPM): N/A
Info:      Processes: 234 Uptime: 2h 08m Memory: 30.97 GiB used: 29.59 GiB (95.5%) Init: systemd runlevel: 5 Compilers:
           gcc: N/A Shell: bash v: 5.0.3 inxi: 3.0.32



Windows VM conf file
Code:
agent: 1
bios: ovmf
boot: order=virtio0;ide2;net0
cores: 8
cpu: host,hidden=1,flags=+pcid
efidisk0: efi:100/vm-100-disk-0.qcow2,size=128K
hostpci0: 01:00,pcie=1,x-vga=on
ide0: other:iso/virtio-win-0.1.185.iso,media=cdrom,size=402812K
ide2: other:iso/Professional_19041.iso,media=cdrom,size=4007744K
machine: q35
memory: 28672
name: win10
net0: virtio=B4:1F:4F:41:A6:BC,bridge=vmbr0
numa: 1
ostype: win10
scsihw: virtio-scsi-single
smbios1: uuid=bd448c84-3921-4ae2-a3f5-4b45d3f5b774
sockets: 1
usb0: host=1-6,usb3=1
usb1: host=1-8,usb3=1
usb2: host=1-9,usb3=1
usb3: host=1-5,usb3=1
vga: none
virtio0: other:100/vm-100-disk-0.qcow2,backup=0,cache=writeback,iothread=1,size=500G
virtio1: /dev/disk/by-id/nvme-ADATA_SX8200PNP_2J0920080265,backup=0,cache=writeback,iothread=1,size=1000204632K
virtio2: /dev/disk/by-id/ata-WDC_WDS100T2B0A-00SM50_1942B1802643,backup=0,cache=writeback,iothread=1,size=976762584K
vmgenid: 3e764e9d-cd78-4292-b401-d3b866de2377


This is all I have running on the system and would appreciate any insight on what the issue might be and what I might be able to do to resolve the issue.

Thanks!
 
I have my CPU overclocked in my BIOS to 4900Mhz. The CPU has 8 cores, all of which are passed to the VM through proxmox. HWinfo64 shows that that each core is running at 750Mhz and when I run a stress test, It goes up to about 1100Mhz.
VMs generally don't have access to accurate hardware data from the host, that's part of the idea of a VM, so the reported frequencies can not be trusted. You can however monitor your frequencies on the host, while the VM is doing it's thing (e.g. i7z was fairly decent last time I used an Intel chip).

As for why your performance is suboptimal: That can have many different root causes, there's many guides (usually related to GPU passthrough) floating around the internet on how to optimize for gaming/benchmarking performance.

The one thing I do see immediately is that you have *all* 8 of your cores assigned to your VM. This is usually a bad idea, and I'd recommend sticking to 6 or 7, leaving some resources for the host to use.
 
And overclocking a server in general isn't the best idea. A server needs to be efficient and stable and overclocking is doing the opposite.

Another thing you can do is setting the VMs CPU to "host". That isn't selected by default and shound give you the best performance but limiting your VM to a specific architecture.
 
I'm using an i9 9900k cpu (no overclock), but the Windows 10 VM do not let me use more than 3.6Ghz cpu speed.
How can i solve this and let the VM use the maximum cpu speed?
 
I'm using an i9 9900k cpu (no overclock), but the Windows 10 VM do not let me use more than 3.6Ghz cpu speed.
How can i solve this and let the VM use the maximum cpu speed?
Shouldn't be a problem. Your VM doesn't use the physical CPU cores, it only sees virtual cores and PVE handles how tasks are spread across all your physical cores. So as long as your hosts physical cores are clocking with full speed this should be fine. As far as I understand it the clockspeed of your virtual cores is just a number on paper without any actual meaning.
 
Last edited:
You can run watch -n.1 "grep \"^[c]pu MHz\" /proc/cpuinfo" on your PVe host to see how your CPU is clocking right now.
 
I have a lot lxc containers and vm's, so how can i know?
I already know the cpu is ok in proxmox console.
i want to know if that specific vm is using more than 3.6Ghz ;)
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!