vmwaredude1
Contributor
Contributor

Question about CPU contention

Folks, what do you think might be the answer to this question8) you are setting up a new ESX server and will initially install VM for users to access. The app to be run are CPU intensive. The plan is for 20 identical VM's to be installed within 6 months, which will cause CPU contention. How can you configure the first 2 VM's so that their performance does not decerease as more VM's are added ?

a. set a CPU limit on the VM's that is a lower value than the available CPU resources for the VM's

b. set a CPU reservation on the VM't that os lower than 50% of the available CPU resources for the VM's

c. set CPU affinity so that each of the VM's only runs on one available CPS

d. set an expandable CPU reservation on the VM that is lower than 50% of the available CPU resources for the VM's

Not sure, which one is correct, any suggestions ?

0 Kudos
10 Replies
khughes
Virtuoso
Virtuoso

I would say that you are trying to study for your VCP exam by posting practice ones up... You should really check out and read the practice flash cards.

But I believe the answer is A

-- Kyle "RParker wrote: I guess I was wrong, everything CAN be virtualized "
0 Kudos
vmwaredude1
Contributor
Contributor

You are right. But, I am not as experienced as you guys out there. I have read most of the pdf's and there are few questions that does not makes sense to me, those are the questions that I ask.

if you see my posts, I ask for a reason also.

Thanks for your reply

0 Kudos
RParker
Immortal
Immortal

The answer is B not A. The key is 2 VM's that you need to have CPU so that they will not DECREASE.

A is a LIMIT, that means your VM's won't go over that amount.

B is a reserveation at 50% of the available resources so that the resources are guaranteed.

B is my FINAL answer.

0 Kudos
mcowger
Immortal
Immortal

You aren't experienced because its very clear from your questions that you haven't actually implemented this. You wont pass the test if you hve no real implmentatione experience.

--Matt

--Matt VCDX #52 blog.cowger.us
0 Kudos
patrickds
Expert
Expert

all depends on how you look at it.

If you now reserve 50% of CPU resources for 2 VMs, that will leave you only 50% for the 18 you want to add later.

Knowing that you want to deploy 20 identical machines, this doesn't look to good.

If you limit them now, to a level you know will be equal to or lower than what they will get with all 20 VMs in place, they will not decrease either.

So if your total CP resources is 16.000 MHz, limit the first 2 to to 16.000/20=800MHz (so use 750) ; that way you know that they will still get the same amount of CPU cycles with your host filled up

The question did not specify they had to be allowed to run at their best, only that they weren't allowed to decrease with more VMs added.

0 Kudos
patrickds
Expert
Expert

i just reread the question again

just occurred to me that they could be talking about reserving 50% of the resources needed for any individual VM, not 50% of the total.

My answer stands,though.

If you reserve 50% of what's needed, but the VM constantly uses 70% of its full capacity; they will actually loose 20% when contention occurs.

0 Kudos
RParker
Immortal
Immortal

Hmm.. I think there is a confusion about limit. When you set a limit that means it won't go above that amount. If you reserve CPU (and yes 50% is rather high) your VM's won't decrease, but they are guaranteed that amount. That's why you set a reservation. Plus the question states:

> set a CPU reservation on the VM't that os lower than 50% of the available CPU resources for the VM's

That does not mean it's 50%, it could be ANY number LESS than 50%, to reserve resources which won't be taken by adding VM's later.

I don't understand how limiting a VM to a certain level (which means its a level cap) will keep the VM's from dropping.

And just because you set a reservation, doesn't mean that those VM's are using it, they are just guaranteed getting that CPU level, but 2 idle VM's with 50% resource guaranteed on a ESX host doesn't mean the ESX host runs at 50% automatically, it just means that whenever it divides CPU resource, those 2 VM's are guaranteed to as much of their needed CPU up to 50% of the total pool on that host.

I still say the answer is B.

0 Kudos
patrickds
Expert
Expert

I don't understand how limiting a VM to a certain level (which means its a level cap) will keep the VM's from dropping.

Because you're limiting it to less than it will actually get with a fully loaded host, you're making sure that they will not use more than they will be getting in the future; therefore they will not loose performance (which was the question)

And just because you set a reservation, doesn't mean that those VM's are using it, they are just guaranteed getting that CPU level, but 2 idle VM's with 50% resource guaranteed on a ESX host doesn't mean the ESX host runs at 50% automatically, it just means that whenever it divides CPU resource, those 2 VM's are guaranteed to as much of their needed CPU up to 50% of the total pool on that host.

You're right about that.

But what if those 2 VMs would actually use more than the reserved 50% ?

With the other VMs added, they will get limited to their reserved resources, thus loosing performance.

I know that in reality, if you have 2 VMs that use more than 50% of a hosts capacity, they should not have been virtualized in the first place; but most questions in those exams are about purely theoretical situations.

0 Kudos
RParker
Immortal
Immortal

Ah, ok. Thanks. I see now.

0 Kudos
NHessonSD21
Enthusiast
Enthusiast

ow ow ow! What do you see? I don't at all.

If you start adding VM's. All VM's will start taking up CPU resources, How does limiting the CPUs on the first 2 VM's prevent the vm's from decreasing in performance?

To make sure some VM's get the CPU needed, we set reservations on the VM's, so we can guarantee they get what they need.

Nick

0 Kudos