VMware Cloud Community
mattsw
Contributor
Contributor

Virtual machines affecting each others performance?

Let's say I have one dedicated physical server with two virtual machines on it. Will they affect each others performance or are they isolated from each other when it comes to hardware resources? I'm asking this because I'm setting up a performance environment where the servers should not affect each other.

For example, lets' say I have some tests running, same tests but different circumstances. Would the performance on Server 1 be affected in case 2?

Case 1 (one physical server)

Virtual server 1: running on 90% CPU with a lot of disk activity and memory usage

Virtual server 2: idle

Case 2 (one physical server)

Virtual server 1: running on 90% CPU with a lot of disk  activity and memory usage

Virtual server 2: running on 60% CPU with a lot of disk  activity and memory usage

0 Kudos
9 Replies
nkrishnan
Expert
Expert

you have mentioned server1 and server 2 is about physical server  and are you going to load/consume resource by running stress on VMs. If it is physical server and you have consolidated it using vCenter server, it will not influvence directly until you have DRS configuration on the vCenter server. If DRS enabled based on the load the VMs may get vmotion to other host.

If you are looking not to effect VM performance, use the resource pool options and reserve the required resources

Thanks

Nithin

--Nithin
0 Kudos
mattsw
Contributor
Contributor

I was a bit unclear and have now updated my post. Yes, I'm putting load on virtual servers. If I understand correctly there is a way to reserve resources so no matter how much stress I put on virtual server 2 it will not affect virtual server 1?

0 Kudos
bulletprooffool
Champion
Champion

Let's say your ESX host has 8 available CPU cores and 8 GB or RAM - If you set up 2 VMs, each with 4 vCPUs and 3.5GB of RAM and set up reservations for these, the ESX host will reserve the resource entirely fgor those VMs (and as you have capacity commit to always presenting that resource)

As such, no impact between VMs even if VM A hammers all resources allocated.

If on thge other hand you created VMs with 8vCPUs and 8GB of RAM each, you'd not be able to set up the reservations and thus VM A's utilisation can afgfect the resource available on the ESX host, thus affecting VM B

One day I will virtualise myself . . .
mattsw
Contributor
Contributor

That's what I wanted to know, then I can go with virtual machines for this solution!

0 Kudos
bulletprooffool
Champion
Champion

OK - good luck (If your ESX host has enough resource . . just set up reservations)

One day I will virtualise myself . . .
0 Kudos
EricJackson2011
Contributor
Contributor

Hey, mattsw,

No disagreement at all with the previous replies, but it does raise a question.

If  you just partition resources of the physical server (say 4 vCPUs to  each of the two VMs, half the memory to each, etc., or something  similar), you're not really getting any advantage out of using virtual  servers. You could get the same result with a couple smaller, cheaper  physical servers. The main point of virtualizing is to have VMs share resources rather than just divide them

In fact, even if you put a third VM on that physical  machine and give it the same resources as the other two, you'll probably  still see no performance hit, but you actually get some benefit out of  virtualizing.

Of course you then have to start paying attention to  possible contention issues and making sure that you're managing things  so that they don't impact performance. But that's the joy of  administering a virtual environment :->.

-Eric

VP - Product Management, VKernel

http://www.vkernel.com

0 Kudos
mattsw
Contributor
Contributor

Hi Eric,

Interesting thoughts! That raises the question, should one use virtualisation for performance tests where comparable measurements over time is very important?

0 Kudos
DSTAVERT
Immortal
Immortal

In my opinion performance testing should match the expected workload. Virtualization gives you the ability to exactly taylor the resources to the observed requirements. There isn't much point in testing with more resources than are necessary (or less than are necessary). If a single CPU and 1 GB RAM are all that are needed then that is what you should provide. If at a later time those requirements change it is but a few seconds to add additional resources. Over provisioning resources means an underutilized environment and reduced VM density. We are less likely to remove resources from an over provisioned VM than the other way around.

-- David -- VMware Communities Moderator
0 Kudos
EricJackson2011
Contributor
Contributor

Comparability over time has less to do with virtualization than with  making sure that the environment in which the performance  testing happens is comparable from one test to the next. This, like many things in the virtual world, can be harder to do than on an isolated server, but it's also the only proper way to test.

And, of course, to David's point,  you also have to make sure that the load you're testing is consistent  and matches what you actually expect. As he said, it's much  easier to give more resources than to take them away.

-Eric

VP - Product Management, VKernel

http://www.vkernel.com

0 Kudos