VMware Cloud Community
NathalieMarshal
Contributor
Contributor

VSMP

I'm hoping all you knowlegable people out there will be able to assist me in a little team argument I appear to be embroiled in!

(environment is ESX3.5, VC2.5)

We have recently started virtualising our server environment, and although I am the least experienced person on the team, none of us have more than a years experience with ESX. The other 2 chaps though have many many years of windows server experience which I don't, having come from a desktop support backround.

Now, we have been building most of our servers with 2 processors, with a few ISA, test, etc boxes set as 1. I'm trying to argue that we shouldn't be doing this.... but I am being overruled. I'm especialy worried that my colleague is building a new citrix presentation server 4.5 environment on ESX with 2 processors, and from my reading this should have 1 processor. Their argument is that we still need to run 16bit applications, which can hog a whole processor, so we need the other processor on there. What about heavily used file servers? I suspect they should have 1 processor but they are being built with 2... And Lotus Domino database servers??

I've done alot of digging on this, but all I can find are blogs and community threads backing me up, which are not holding much water in the argument. Can someone direct me to a white paper or official VMWare doc to back me up? Can someone explain in good techy terms why what we are doing is WRONG and it is worth rebuilding stuff to correct it? We've already virtualised 60 odd servers and we've got another 60 or so to go, plus perhaps the citrix environment although that part hasn't yet been decided...

Help??

Tags (3)
0 Kudos
10 Replies
Yattong
Expert
Expert

Have a read of the performance doc www.vmware.com/pdf/vi_performance_tuning.pdf, it will show the constraints and characteristic of using vSMP on ESX.

If you do decide to carry on with vsmp, then this doc may help, http://www.vmware.com/pdf/vsmp_best_practices.pdf

you may also want to read on others experiences with installing citrix on ESX aswell, download3.vmware.com/vmworld/2006/tac9728.pdf

Good Luck

If you found this or any other answer useful please consider the use of the Helpful or correct buttons to award points ~y
0 Kudos
Chris_S_UK
Expert
Expert

Nathalie

It's a great shame that blogs and community threads are not holding much sway with your colleagues as, with not so much ESX experience, they can learn a lot from such sources (as can we all, irrespective of experience, of course).

It's a good chance that many of your servers will need >1 vCPU but that doesn't change the fact that it's good practice to start with one and go from there. If you run a production workload on a VM with 1 vCPU and its %RDY times are <5% or so for most of the time, you are going to get little benefit from adding a second (or more). You're probably aware of the difficulties you can give the vmkernel scheduler if you have too many vCPUs per physical core on a host server.

FWIW, I would doubt if even a heavily used fileserver needs >1 vCPU. Citrix and Domino servers are more likely candidates for SMP, though.

The only possible fly in the ointment (i.e. argument for starting with multiple vCPUs) is the process of moving from 1 vCPU to SMP. Although it's possible to change the Windows HAL, I have seen a particular case where a Java based app refused to work properly after the VM it was running on had extra vCPUs added, even after the HAL was changed. Going back down to one vCPU fixed the problem. You might encounter similar issues if you are unlucky.

If, out of the 120 servers, only half really need SMP but you give all of them 2 vCPUs, then you are effectively assigning 60 vCPUs which are unnecessary. This is going to have a direct effect on your bottom line because you will need more host horsepower to run those 120 VMs when compared with if they were more conservatively sized.

Hope this helps

Chris

NathalieMarshal
Contributor
Contributor

I noticed the VSMP best practices doc, but it's for ESX2. Is there anything that says that the same does or doesn't apply for ESX3.5??

I did also find some stuff on some blogs saying that Citrix runs worse with 2 CPU's than with one, because of the scheduling problems. Is there any official documentation that says this?

Thanks for those pointers though.... I'll carry on fighting!

0 Kudos
NathalieMarshal
Contributor
Contributor

So how do I persuade them to remove one of the vCPU's from one of our file servers then?! In a production environment?! We don't have a "Lab" - just a small test cluster that we can't simulate heavy usage on...!! They are stubborn chaps too.....

0 Kudos
Chris_S_UK
Expert
Expert

if you don't want to change the virtual hardware (and thus have potential HAL issues from going SMP to not), you could always use the /onecpu option in the boot.ini file....although this would still require a reboot.

See here:

edited to add that of course this is not a solution, merely a way to prove that one cpu would suffice. The real fix would require that a cpu is removed and HAL issues be resolved

O_o
Enthusiast
Enthusiast

You could tell them it's a royal pain to have to rebuild the entire server if they find out that, once the Citrix server is running, it's performing very bad with the 2 vCPUs and they need to remove one. Windows cannot handle the removing of a CPU very well, but enabling a second one is less of a problem. So why not start from 1 vCPU do some tests and if necessary enable a second one ?

0 Kudos
NathalieMarshal
Contributor
Contributor

Believe me I've tried that .... I get "Because it won't work"...

I even tried removing a vCPU from a test citrix box - next thing I knew the CPU was back, and my admin access had been removed from that box! (They are domain admins - I'm not, I also don't have all the local admin passwords yet... I'm working on it though!)

0 Kudos
NathalieMarshal
Contributor
Contributor

That's a really helpful suggestion - thank you. My manager backs me and is watching this thread (I hope!) though the main Notes db server is down at the moment so attention is elsewhere...!!

0 Kudos
Ken_Cline
Champion
Champion

If you search the forums here, you will find many discussions on this very topic. In every one of them, you will find that the experienced ESX administrators and architects invariably recommend that you start with one vCPU and - if there is a performance problem - then upgrade to two, and then four, if needed.

The problem that we all run into is that everyone is accustomed to having two pCPUs in their boxes (and two GB RAM...) and they think that HAVE to have that in a VM, too. If you have the option, monitor the workloads on a physical box and see if both CPUs are actually being used - chances are, they aren't.

One of the key reasons to virtualize is to share resources and reduce the number of physical boxes. Create your Windows VMs with ONE vCPU and 512MB RAM to start. Test your performance and scale up as required. In most cases, you won't have to change a thing.

Ken Cline

Technical Director, Virtualization

Wells Landers

VMware Communities User Moderator

Ken Cline VMware vExpert 2009 VMware Communities User Moderator Blogging at: http://KensVirtualReality.wordpress.com/
0 Kudos
NathalieMarshal
Contributor
Contributor

Thanks for that too. I guess what I was looking for doesn't exist, which is a document published by VMWare saying "Citrix servers only need 1 CPU even when running 16bit apps" "Start all servers off with 1vCPU and 512Mb increase only if necessary, apart from ......*****....... which will more than likely need the 2 to start with.

The problem we have is that when the server goes on line it has to work 100%. If we put one on line with 1cpu and 512 and it's awful, we'll be butter on the managers toast before we can up it's resources in memory let alone before we can reboot it.... So we tend to play safe.....

0 Kudos