-1

Often our team members are coming to me with a compliant that their VMs are slow.

Our team members suggested to shutdown some of the VMs temporarily and try to access the VM.

But most cases that would not help.

Assume that i have assigned 4 GB for and 2 CPUs for my VM. So ideally it should not face performance issue.

As our ESXi 4.1 server has multiple VM in the same server (we have overcommited memory and CPU).

Does shut down other VM really helps to improve performance or not?

[Note : We are using ESXi 4.1 and our hardware is R710 server. We have more number of VMs in single server so we have overcommited memory.]

4 Answers 4

4

You need to analyse what's going on with the box as a whole, looking at CPU contention and %Ready, memory usage and IO latency and bandwidth. Although the basics of this can be quite easy to begin with I would suggest that you either get yourself trained in this matter (even a basic VCP4 course would help a lot) or get someone in to look at the problem who has done this before.

As for whether or not shutting down VMs will help, it could but it really does depend on what the issue is, you need to find that first.

Feel free however to add some actual details to your post showing any of this data and we'll take a look.

2

It will probably help, yes, especially if you're over-committed, especially if you're over-committed on CPU and running multi-CPU guests.

Contrary to popular opinion, adding more vCPUs to a VMWare guest generally degrades performance instead of improving it. Either all the vCPUs assigned are able to run, or none are, so adding more vCPUs to a VM makes it less likely that the VM will be able to access enough physical CPU cores at any given time. Essentially, CPU requests from a guest OS wait in line until there as many physical cores free as the VM has vCPUs.

So, if you've been adding more cores to try to "improve performance," you've actually been increasing queue times for CPU resources and making performance in your guest OSes worse. Assuming that's the case, your first step should be a quick check of your CPU contention and queue times, followed by switching everything that doesn't absolutely need multiple vCPUs over to a single vCPU OS. Depending on the particular OS in qusetion, this may be best achieved by simply removing the extra CPU(s), or may be best if you to create a new guest OS.

2
2

Even supposedly "idle" machines run occasional background tasks that consume CPU, memory, disk, network, etc. If it doesn't need to be running, and you're as resource-constrained as you say you are, shut it off.

2

The correct answer is a mixture of everything everyone has said thus far. Will shutting down unused VMs help? Without a doubt yes, list of things that can help (even if the idle VMs are truly idle),

  1. Fewer context switches (they are expensive)
  2. Potentially dropping below the overcommit threshold where VMwareno longer needs to break large pages.
  3. Fewer cache misses (extension of fewer context switches).

Will it help your users perception performance? Will that depends. If CPU contention is high (CPU ready), or Memory overcommit is causing an impact (nonzero ballooning or paging). Then there will be a visible and marked improvement.

If not, then there will be an improvement that only benchmarks will pick up, and you need to be looking elsewhere.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .