ESX 3.5 U3 saw in increase in the max number of vCPUs to 20.
Increase in vCPU per Core Limit —
The limit on vCPUs per core has been raised from 8 (or 11 for VDI
workloads) to 20. This change only raises the supported limit but does
not include any additional performance optimizations. Raising the limit
allows users more flexibility to configure systems based on specific
workloads and to get the most advantage from increasingly faster
processors. The achievable number of vCPUs per core depends on the
workload and specifics of the hardware. It is expected that most
deployments will remain within the previous range of 8-11 vCPUs per
core.
Our ESX servers have two quad core xeons (no hyperthreading).
The max number of vCPUs per VM we can assign is 4. I assume this is because quad core = 4 core = vCPUs? But for a moment I wondered if should I be able to assign 8vCPUs?! Anyone else able to do this, just intrested?
Andy, VMware Certified Professional / VMware vExpert Award 2009
If you found this information useful please award points using the buttons at the top of the page accordingly.
The limit per VM still is 4 vCPUs.
The only change is that you are now able to run more vCPUs per physical core.
The max number of vCPUs per VM we can assign is 4. I assume this is because quad core = 4 core = vCPUs?
First the battle rages on into whether or not more CPU in a VM = more performance. I say not. I also have plenty of supporting documentation and OTHER companies that discourage multi CPU VM's. Despite the small group of people in this forum, it's widely accepted that running more than 1 vCPU in a VM is basically useless, this is in Hyper-V, VM Ware and any other non-paravirtualized environment.
So I question whether or not you will even see any improvement (which you won't) and with that many CPU assigned to a VM I question why you are running in a VM to begin with.
Think about this from a purely logical point of view. One VM, takes over ALL the CPU on the host, what's left for remaining VM's? How about none? Bad move for VM's Also the idea behind VM's isn't to compete for Physical performance, RAM, or size and scope of machines, it's sole purpose is to go green, save space and consolidate management. But if you start stacking the deck, it's a diminishing return on your VM License.
So test first. With 1 vCPU, run a benchmark or two. Then run the SAME benchmark again, this time ONLY make the VM 2 vCPU. I will wager whatever money you have on grant you that the performance (if any, I still say none) will be less than 10%. (Unless it's Linux VM's). Going from 2 or more to 4 or 8 vCPU will definately be ZERO performance.
So first you have to run some test before you think you NEED that many CPU. I think you are mostly stuck on the idea because physical boxes with all those cores, somehow you figure VM's will utlize them the same way, they will not. VM's are basically a bunch of threads running at the same time. So monopolizing the CPU isn't going to give you what you think it will.
Try a bench mark first, and if you actually see improvement, I would like to see the graphs.
EVERY time I ask this question, not one person has actually put up the graphs, charts or the numbers to PROVE their findings. I find that remarkable. I say it's 'theorhetical' and no one can actually show their test results (Linux however does improve a little for 2 CPU). I have compared notes with a few other companies and we are all scratching our heads wondering 'You think people SAY they improve when they really don't?'. I really think that's the bottom line.
People talk a lot, but have yet to show any evidence. But VM Ware will appease the masses by giving them what they want (8 vCPU). Even their engineers (and I have personally talked to a couple) say that it's mostly people with their comfort zones that makes it SEEM better. You just want to believe that 1 CPU isn't enough, so you add more. But just because you CAN do it, and VM ware makes it possible doesn't mean that you will see any improvement.
It's like a child wanting a cookie, they won't stop until you give them what they want. So let them have as many as they want until they get sick, then they won't want any more... Gotta love Psychology.
No evidence, ok
XP VMs.
time to completion of their testing task (a highly multithreaded task).
1 CPU: 2:11
2 CPU: 1:30
As for our linux VMs, they improve almost linearly with the vCPUs
1) 8:12
2) 4:45
4) 3:34
So, I've got $40 in my pocket right now. I take paypal :).
--M
--Matt
VCP, vExpert, Unix Geek
Are these debates scheduled??
No, they aren't scheduled.
And different forum members have seen different results, depending on their environment.
Unlike mcgower, we only see performance issues (not benefit) using multiple vCPUs.
It really all depends on your workload, your hosts, and your storage...
Jase McCarty
Co-Author of VMware ESX Essentials in the Virtual Data Center
(ISBN:1420070274) from Auerbach
Please consider awarding points if this post was helpful or correct
Matt, fill your ESX with VMs for ex up to 2-3 vCPUs per core, make some load on VMs to raise host CPU load to 30-40% level. And then run test for 1 vCPU, 2 vCPU and 4 vCPU.
---
VMware vExpert '2009
Looks like vExperts meeting
---
VMware vExpert '2009
Hi there,
In some testing I did recently for SQL 2007 we saw an increase on performance when using 2 x vCPUs as oppose to use just one vCPU
Also for Exchange 2007 workload there is quite a good article on how it scale with 1, 2 and 4 vCPUs.
http://www.dell.com/downloads/global/power/ps4q07-20080147-Muirhead.pdf
My two cents anyway
Saludos,
Jose Maria Gonzalez,
El blog de Virtualizacion en Español
-
http://www.josemariagonzalez.es
http://www.josemariagonzalez.es/feed
http://twitter.com/jose_m_gonzalez
VMware vExpert 2009
-
If you find this or any other answer useful please consider awarding points by marking the answer helpful or correct.
Anton,
Our hosts are at about 4.25 vCPUs/core, and the Host CPU is already around 60%, and we still see this improvement.
As Jase mentioned, this is not true for all workloads or users. An improvement probably isn't even true for MOST workloads. I only mention my experience because of Parker's continuing insistence thats its NEVER possible.
--Matt
VCP, vExpert, Unix Geek
Matt,
Thank you for info.
---
VMware vExpert '2009
Could someone point me to tests and benchmarks that are publically available? I'm having this debate internally and I realize the only way to settle it would be to test our own specific apps, but I'm resource constrained myself and getting assistance from other teams is proving to be a challenge. Ideally I would be able to find some testig methodology I could run myself in our environment so to produce numbers internally that people outside my team (like developers who are now asking for 4-8 vCPU just because that's what they'd get on a new physical) can start to believe in.
Thanks,
Tim
VMmark is the best 'standard' benchmark there is, and there are a ton of published scores around.
Ultimately though, the only one that matters is YOUR app. If your app is like mine and does really well with multi vCPUs, it might be worth doing. If your app is like Parker's and only uses 1 core no matter what, then yeah, multi vCPUs would be pointless.
--Matt
VCP, vExpert, Unix Geek
Excellent post. I have been trying to convince others here that more is not always better. First thing people try is adding CPU's if they see a performance issue. I am in the process of scaling as many VM's from 2 vCPU's to 1 as possible to improve performance. One of the few VM's that can truely utilize 2 vCPU's is Windows 2008 with Exchange 2007(Resource Pig) I am trying to convince others to start with 1 vCPU.
Mike
"If your app is like mine and does really well with multi vCPUs"
Is there a surefire way to validate that an app currently running on a 2-4 proc physical is really using the multiple procs or do you need to perf test both ways. For instance in windows I've always thought if you see the procs bouncing 75/25 then 25/75 then the box was in fact pegged, it was just bouncing one thread between two procs. So while it was actually using both procs, it was a waste because it couldn't use more than 100% of one proc. So I would think that would mean it's best to have a 1vCPU box. My issue is devs and PMs saying they need 4 cores and I want to give them one, but nobody has time to prove it one way or another.
Only surefire way is to perf test your app.
--Matt
VCP, vExpert, Unix Geek
If your app is like Parker's and only uses 1 core no matter what, then yeah, multi vCPUs would be pointless.
<Moderator Hat on> Why do you insist on baiting all the time Matt, Please desist, <Moderator hat off>
Tom Howarth VCP / vExpert
VMware Communities User Moderator
Blog: www.planetvm.net
Contributing author for the upcoming book "VMware Virtual Infrastructure Security: Securing ESX and the Virtual Environment”.
How is that baiting? I was AGREEING with him.
--Matt
VCP, vExpert, Unix Geek
We digress...
What I was asking was it does the max number of vCPUs equal the max cores per physical processor.
So only if I had a 20 core processor could I have 20 vCPUs in a VM?
I wasnt asking about the performance affects of vCPUs. Though got to agree that generally adding vCPUs increases performance in multi threaded apps like databases etc. If youve got some legacy app it probably wont make use of the extra vCPU and its time could have been better used in another time slice for another VM. If youve got lots of VMs like this then you will see general bad performance using more vCPUs.
Also bad P2Vs can cause 2+ vCPUs to give worse performance depending on the HAL. People forget to change it.
Andy, VMware Certified Professional / VMware vExpert Award 2009
If you found this information useful please award points using the buttons at the top of the page accordingly.
What I was asking was it does the max number of vCPUs equal the max cores per physical processor.
No!!!
So only if I had a 20 core processor could I have 20 vCPUs in a VM?
No! 4 vCPUs per VM but 20 vCPUs per core (=20 * 1vCPU VMs or 10 * 2 vCPU VMs or 5 * 4 vCPU VMs)