First, I have tried to understand the vCPU sizing from both the ESXi side and Citrix side (ie, the rule of 5 and 10). I am very confused and I hope someone can guide me. I'll try to be brief and then if more details are needed, please let me know.
We currently have 13 hosts in a vSAN cluster (not all hosts have their disks claimed. Only 8 do). 9 hosts have Intel Xeon Gold 5218 processors ( 2 x 16 cores @ 2.30Ghz) 4 hosts have Intel Xeon Gold 5220 processors ( 2 x 18 cores @ 2.20GHz). The 9 hosts have 1.5TB of RAM, the 4 hosts have 768GB of RAM.
The majority of our resources are used up by our Citrix environment. We publish a Windows 2019 Desktop for our users (as well as apps). We have about 100 (maybe a little more) Citrix servers where people log in to. We have several Catalogs where, for the most part, we have divided them between different service lines. The servers have a mix of software, outlook, teams, excel, word, adobe, chrome, edge, etc, being the most widely used.
When looking at our Citrix Studio, we have seen up to 660+ sessions. Once we start hitting around 600 sessions, the host CPU on several hosts will jump to 80-90% or more. We do have ControlUP and to us it seems like its just users using the system with the applications (excel, teams, chrome and adobe seem to be the highest used).
The Citrix servers had 8vCPUs and 32GB of RAM. We have been been changing them to 6vCPUs and 64GB of ram. We will see the Citrix server spike to sometimes 14Ghz. When we look at the server its pretty much just users being users and running excel, teams and adobe.
We are trying to make it so that the physical hosts aren't spiking to 80 or 90% but we are not sure the best way. Do we reduce the vCPUs to 4, and does it matter if we choose 4 vCPU's and then 1 core per socket or do we choose less sockets but more cores? If we choose less sockets but more cores, the options for cores don't seem to match properly. For example, if I choose 1 socket I only get an option of 1 core per socket. If I choose 3 sockets I only get 1 or 3 cores per socket. I heard uneven numbers are not recommended, but I don't know if that old or current advice. Another thing i read said its better to have 1 socket and then more cores, but i don't have the option to put 1 socket and 4 cores.
I was also thinking of doing resource pools but then I got even more confused. Ultimately I think we would like to have it so that each Citrix server is not using more than 10Ghz which we know will make the user experience slow, but we are trying to not overload the physical hosts.
Sorry for the rambling. If anyone has any advice or questions please let me know. Thank you.