Calculate CPU usage for Horizon

From Michael's Information Zone
Jump to navigation Jump to search

Window 10

As of this writing we are using 6 x PowerEdge R640 servers with 2 x Xeon Gold 6146 CPUs each. At first these were enough for four vcores per VM, but after disabling hyperthreading we started running into some issues. Keep in mind that one server will be used for redundancy so we only have 5 servers worth of cores to play with.

  • Current config causing some contention

120=(120/4)*4

Windows 7

I found that for a modern Windows 7 VM, to be used as a standard desktop for a user, and without using GPU acceleration, you should provide 3-4 cores per user.

However, the actual formula for this is as follows based on a live deployment I have worked on.

Initially, three servers were deployed with three cores allocated to each VM. The servers had a total of 36 physical cores between them. Using the formula from a VMWare artical[1]

  • "(Virtual Machines per Server) = ((Cores Available on Server) / (vCPUs Needed per Virtual Machine)) * (Overcommit Ratio of vCPUs per pCPU)"


I was able to work out the following. Breaking down ratios of 6,5,and 4 to 1 and how many users we could expect for each.

36 cores / 3 servers (previous)
72=(36/3)*6
60=(36/3)*5
48=(36/3)*4

There was a problem. Not all of our test users were using the system, so we did not have good measurements. When all users were migrated we ran into resource contention. The user count was around 70 users and growing. Obviously a 6:1 ratio with our current core count was not sufficient. So we installed a fourth server and was able to squeeze them all in.

48 cores / 4 servers (Current)
96=(48/3)*6
80=(48/3)*5
64=(48/3)*4

Then after more growth and 102 VMs running, a chunk of them dedicated to service accounts that don't do much, we are experiencing resource contention again. This time we will increase our density and core count to accommodate 150 user.

80 Cores / 2 servers (Future)
160=(80/3)*6
133=(80/3)*5
106=(80/3)*4

However, I would like to bump this down to a 5:1 ratio to better manage resource spikes. These are not servers with predictable usage patterns.