VMware Cloud Community
CaliTech
Contributor
Contributor
Jump to solution

How to get the most processing power to a single virtual machine

Is it possible to provide a VM additional CPU cycles when it has already been configured with the maximum 4 vCPUs???

I understand that what I'm asking for in a way defeats the purpose of virtualization, but before running through V2P I would like to see if it's possible to provide this VM additional CPU cycles.

Current config:

ESXi 3.5 running on IBM Blade Server

Dual-Quad Core 3.0Ghz with 16GB of RAM

Virtual Machine:

Windows Server 2003 SP2 Enterprise Ed.

Configured with 4 vCPU, 4GB of RAM, Shares = 4000(other 3 VMs = 1000), No Reservation, Limit set to max allowed (113250MHz), HT Mode set to Any with No affinity.

The VM is running a mail archiving application that consumes all CPU cycles currently allocated, this can be seen on both the performance metrics for

the guest OS as well as the performance metrics in VIC for the host for 4 cores.

Tags (2)
0 Kudos
1 Solution

Accepted Solutions
mcowger
Immortal
Immortal
Jump to solution

Short version: No, 4 is the max.






--Matt

VCP, vExpert, Unix Geek

--Matt VCDX #52 blog.cowger.us

View solution in original post

0 Kudos
18 Replies
mcowger
Immortal
Immortal
Jump to solution

Short version: No, 4 is the max.






--Matt

VCP, vExpert, Unix Geek

--Matt VCDX #52 blog.cowger.us
0 Kudos
NuggetGTR
VMware Employee
VMware Employee
Jump to solution

Also increasing the amount of vcpu's will not always increase the performance, can do the exact oppisite in a virtual environment specially if there is other vm's running on the host.

vshpere will allow you to have upto 8 vcpus tho if you really need more

________________________________________ Blog: http://virtualiseme.net.au VCDX #201 Author of Mastering vRealize Operations Manager
mcowger
Immortal
Immortal
Jump to solution

In his case, given what he's seeing, it likely would...






--Matt

VCP, vExpert, Unix Geek

--Matt VCDX #52 blog.cowger.us
0 Kudos
DPike
Enthusiast
Enthusiast
Jump to solution

What are the System Requirements for the application when installed in a physical environment?

_________________ Dustin Pike VMware Certified Professional (VI3 & vSphere) Virtual Blocks Blog
0 Kudos
DSTAVERT
Immortal
Immortal
Jump to solution

Although unsupported you can change the cores per socket setting for the VM. This might have some serious side effects on the remaining VMs but perhaps worth a try.

http://www.yellow-bricks.com/2009/06/04/per-processor-licenses-for-your-application/

I don't know whether it applies to vSphere only?

-- David -- VMware Communities Moderator
0 Kudos
kac2
Expert
Expert
Jump to solution

what about creating resource pools? create 1 resource pool as High and no limits, stick your server in there. Create another resource pool as low or create a limit on process and RAM (bad, i know) and put the rest of your VMs in there

0 Kudos
CaliTech
Contributor
Contributor
Jump to solution

DPike, per your request:

Processor: Quad core (or better)

OS: Windows 2003 Server Enterprise (32bit) or Windows 2008 (64bit WoW)

Memory: 4 GB

HDD: 20+ GB (system/boot), 20+ GB (Application)

Recommended: For fault tolerance, include mirrored system partitions

Network: (2) - Gigabit Ethernet NICs (teamed and configured for ‗Fail on fault‘) for public access & public cluster heartbeat, connected to different switches

(1) - Gigabit Ethernet NICs for private cluster heartbeat

0 Kudos
CaliTech
Contributor
Contributor
Jump to solution

Would the resources available to the VM still be limited to the processing power of the 4 vCPUs??? Or would the resource pool allow the VM to use more than what has been configured.???

Really appreciate all the comments..

0 Kudos
mcowger
Immortal
Immortal
Jump to solution

You will not be able to exceed the processing capacity of 4 vCPUs regardless of any other setting or resource pools.






--Matt

VCP, vExpert, Unix Geek

--Matt VCDX #52 blog.cowger.us
kac2
Expert
Expert
Jump to solution

why wouldnt resource pools work?

if you have 100% of resources, you give 80% of resources to the High Resource Pool, and you limit 20% to the Low Resource Pool. giving that 1 VM 80% resources of the host. is my rationale incorrect?

0 Kudos
mcowger
Immortal
Immortal
Jump to solution

Your rational is incorrect.

Say you have a 8 core host. You create a 4 vCPU VM. YOu put it in a 100% allocation resource pool. The VM doesn't get 8 cores worth of cycles, it gets 4. There is no way to exceed that.






--Matt

VCP, vExpert, Unix Geek

--Matt VCDX #52 blog.cowger.us
0 Kudos
DSTAVERT
Immortal
Immortal
Jump to solution

Matt

Perhaps you know whether the cpuid.coresPerSocket setting works with 3.5.

As per Duncan Eppings site you should be able to do this and at least someone implemented it in 3.5. Whether successful or not??

http://www.yellow-bricks.com/2009/06/04/per-processor-licenses-for-your-application/

-- David -- VMware Communities Moderator
0 Kudos
mcowger
Immortal
Immortal
Jump to solution

It does actually work on 3.5, but it still wont help. That will just change it so his VM sees 2 dual core CPUs rather than 4 single core CPUs....its wont change the number of cores or cycles available to the VM, just how they are presented.






--Matt

VCP, vExpert, Unix Geek

--Matt VCDX #52 blog.cowger.us
0 Kudos
DSTAVERT
Immortal
Immortal
Jump to solution

Thanks

-- David -- VMware Communities Moderator
0 Kudos
CaliTech
Contributor
Contributor
Jump to solution

I did attempt the recommendation of adding the 'cpuid.coresPerSocket' entry and can confirm that this did not provide the any additional processing power.

0 Kudos
AsherN
Enthusiast
Enthusiast
Jump to solution

As counter intuitive as it may sound, if you have more than 4 other VMs running, try to changing that VM to 1 or 2 vCPU. Your poor performance may simply be due to the VM waiting for 4 cores to become available before processing.

0 Kudos
DPike
Enthusiast
Enthusiast
Jump to solution

I agree with Asher's post. I believe you may want to limit your VM to 1-2 vCPUs. I believe others suggested it earlier as well.

The specs you posted for this machine dont seem to make it out to be a powerhouse application.

Ive seen SQL VMs running with vCPUs, and SQL is about as resource intensive as it gets.

When building VMs for applications, keep in mind that requirements dont directly translate over from P2V. Shared resources act much differently than solely owned ones.

I'd start by lowering the vCPUs to 2. Also, console into the ESX host and check the CPU ready whenever that system goes into a 100% cycle.

Also, is this a standalone ESX system or is it clustered, and if so, how many nodes are in that cluster. Check the balance of your VMs across the cluster (if applicable) and look at moving more VMs off the ESX host that houses this specific VM to allow for less resource contention.

Lastly, Matt pretty much covered your options for "increasing" CPU resources...there arent any.




_________________

Dustin Pike

Wintel and ESX Admin

VCP3

_________________ Dustin Pike VMware Certified Professional (VI3 & vSphere) Virtual Blocks Blog
0 Kudos
AsherN
Enthusiast
Enthusiast
Jump to solution

Bear in mind that you must take the recommended system requirements with a ton of salt. OS and apps geared for the consumer tend to underestimate requirements to appeal to a broader base.

Server apps tend to overstate requirements to avoid customer coming back at them with stories of inadequate performance.

Quick example, we are looking at a Linux-based WMS system. It will be interfacing with about 5 pickers and 5 packers. The vendor's specs call for a minimum 3GHZ Quad with 32GB RAM. While I'm sure that some of their customers can push that, we won't and won't configure even close.

0 Kudos