Hello all,
My company have a large number of VMs that have been overprovisioned - far too many vCPUs, too much RAM, and too much storage - across both Windows and RHEL OS.
We have identified correct requirements for each machine, and we want to reduce the currently allocated resources to match these.
What is the best way to do this? We are running ESXi 5.1
Hi there,
yes - v2v is the easiest and safest way to go when you want to decrease the size of a VMDK. Not much more to say here ![]()
In the middle of this adventure myself. Here is some tidbits I can share so far still learning.
1) What tool are you using for determining overage?
2) Start in pre-production, then do production by app / workload type
3) Performance gains can be realized by reducing vCPUs, then memory. Memory reduction helps with vMotion speeds (use 10 GB)
4) Change one thing at a time.
5) Measure changes using data, not only user perception (seems obvious
) although hard facts and data help show improvement
6) perform on lesser critical machines to start learning the process
7) If the tool says reduce by say 16 to 2 vCPUs, take 50% of the recommendation. Be conservative.
Ensure there is enough available to handle spikes.
9) Be prepared to take it slow, steady, and be patient with end users.
Good luck, I'm no expert by any stretch, just passing along my experiences.
Hi Steve - thanks heaps for your reply!
Absolutely agree with starting in pre-prod and working through one step at a time from there.
I've been using vCOPs to give an initial sizing recommendation - then I look at actual vCPU and RAM % utilisation graphs (over the past year) and adjust the vCOPs recommendation to accommodate for the spikes.
Have you worked out how to do the actual resource reductions to the VM yet? The best method I've found for this so far is doing a v2v conversion and configuring the clone VM with less allocated resources than the source VM, but I haven't tested it yet.
I work with the app owner to schedule an outage, reduce vCPU's and / or Memory. Make sure to adjust any applications memory sizes for any new sizes (RAM usually), like JVM thresholds. v2v? Do you use that for keep the original vm intact?
What version of vCOPS?
Using vCOPs 5.8.3
So to reduce vCPU and RAM we can schedule an outage and change these values - but I've found that we can't do this with storage (we can increase the allocation easily, but we can't decrease it).
The only method I've found for reducing the VM's storage is to do a virtual to virtual conversion (using VMware vCenter Converter) and specify new disk sizes for the clone VM (smaller than the disks on the original VM). You make the storage savings when you delete the original VM. I've tested this on a lab VM and it worked, but I am keen to get feedback on this approach before doing it across other environments.
Hi there,
yes - v2v is the easiest and safest way to go when you want to decrease the size of a VMDK. Not much more to say here ![]()
