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
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
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?
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
That's what I wanted to know, then I can go with virtual machines for this solution!
OK - good luck (If your ESX host has enough resource . . just set up reservations)
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
Hi Eric,
Interesting thoughts! That raises the question, should one use virtualisation for performance tests where comparable measurements over time is very important?
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.
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