-1

CPU-Z on some customers VM for DB server is constantly showing 2,8 GHz CPU frequency. While with TurboBoost enabled it could be 3,6 GHz by the Intel documentation.

VM administrator is telling me, that TurboBoost is enabled, that the frequency is just not published to the VM GUI.

No matter how I stress CPU on the VM, it's still showing just 2,8 GHz.

How can I know what is REALLY the maximum frequency the VM could utilize?

enter image description here

Please, be patient and descriptive with me as I am not an administrator, I am specializing in MS SQL databases.

jericzech
  • 99
  • 1
  • You could have a look at the performance of a well benchmarked, CPU intensive work load (crypto mining hash rate, file compression, image rendering). In a VM such a workload should run at 90%+ of expected native performance. – FreeJack Apr 14 '21 at 13:11
  • When I stress CPU in VM - task manager is showing 100% for all logical cores... How should I know it's 90%+ of expected native perfomance? ("native performance" you mean those 3,6 GHz expected?) – jericzech Apr 14 '21 at 13:29
  • Yes, just pick a cpu intensive workload where you find a published expected performance. And than check the performance on the vm. – FreeJack Apr 14 '21 at 13:33
  • Sorry, I don't understand :-( – jericzech Apr 14 '21 at 13:58

1 Answers1

1

It is totally possible for TurboBoost be enabled while, at the same time, hypervisor only reporting the base CPU frequency. However, it is unlikely that you will ever enjoy the 3.6 GHz boosted frequency: TurboBoost (especially on such old CPUs) is an opportunistic boost which only kick in when few cores (eg: 2) are loaded, an unlikely scenario for an hypervisor.

What @FreeJack suggested you in the comments above is to compare the CPU performance of your virtualized instance with a bare-metal, same-Xeon host boosted to 3.6 GHz. This would be a difficult task, as any other loads on the underlying hypervisor can alter the benchmark results.

That said, rather than trying to increase the frequency of such an old CPU (Ivy Xeons are ~8 years old now), I strongly suggest you to switch to a more modern hypervisor (Xeon Scalable or newer, possibly even something based on AMD Epyc 7002 or 7003): thanks to higher IPC and clock, you can instantly gain >50% more performance.

shodanshok
  • 47,711
  • 7
  • 111
  • 180
  • Thank you! I mostly understand. But with that said, IF the boosted frequency would be just running - would it be visible/reported (somehow) in the VM - maybe using other tool than CPU-Z? Or from the other perspective - MS SQL Server, especially for OLTP workloads, benefits from the highest frequency possible (many short single-threaded operations) - can something be done at the hypervisor to enjoy the most of it? – jericzech Apr 14 '21 at 21:24
  • 1
    @jericzech the turbo boost frequency will probably be *invisible* to the running VM (the exact behavior depends on the hypervisor and its config). What can be done to the hypervisor level is to disable hyperthreading and/or never overallocate your CPU subscription. – shodanshok Apr 14 '21 at 21:55
  • 1
    The CPU readings in a VM are informative at best -- some hypervisors report even fake data here. There are good reasons doing this, for example enabling hot migration of VMs between bare metal instances. Therefore I suggest having a look at the only thing which really matters: does the VM CPU performance match the promised level. And that means does my workload run as performant as expected. @shodanshok You are completly right -- competing workloads an the same host will alter the VM performance. That's a feature -- the performance usable in the VM is what matters, after all. – FreeJack Apr 15 '21 at 04:47