vmproteau
Enthusiast
Enthusiast

Setting reservations on VMs running JAVA

Jump to solution

I recently came across a VMware Performance Overview that had a page essentially recommending setting memory reservations for VMs running Java (see attached). We have Java environments and have not had any performace issues or complaints so, I doubt I would implement any changes. However, I am curious if this is still a best practice recommendation I couldn't place the date on the document so, I wanted to see if someone had updated or current information for vSphere 4.X, 5.X environments.

As a rule, we don't use memory reservations to avoid the increased administrative and operational overhead. If we ever did have a need, I would prefer to utilize resource pool reservations rather than granular VM level reservations.

0 Kudos
1 Solution

Accepted Solutions
Troy_Clavell
Immortal
Immortal

In my opinion, If you utilize reservations are a regularity not an exception in your environment then you may want to use these rules.  With that said, if you don't and aren't having any problems, I wouldn't change anything.  I've also linked a newer document below.

http://www.vmware.com/files/pdf/techpaper/Enterprise-Java-Applications-on-VMware-Best-Practices-Guid...

View solution in original post

0 Kudos
4 Replies
Troy_Clavell
Immortal
Immortal

In my opinion, If you utilize reservations are a regularity not an exception in your environment then you may want to use these rules.  With that said, if you don't and aren't having any problems, I wouldn't change anything.  I've also linked a newer document below.

http://www.vmware.com/files/pdf/techpaper/Enterprise-Java-Applications-on-VMware-Best-Practices-Guid...

View solution in original post

0 Kudos
vmproteau
Enthusiast
Enthusiast

Just what I was looking for. Thanks Troy.

0 Kudos
jklick
Enthusiast
Enthusiast

Looks like I'm a little late to the party, but...

My guess is that you haven't seen any issues with Java applications that have no reservation because you haven't run into any serious memory contention issues. If you typically have more hardware than you need/use and your hosts/clusters are underutilized on memory, you may never run into a situation where reservations are needed for your Java apps.

I believe the reason reservations are recommended is because if a VM with a Java app is forced to start ballooning/swapping memory pages because of contention for resources at the host/hypervisor level, all sorts of nastiness can happen to performance - a reservation would prevent that from happening, ensuring the VM always has what it needs.

Hopefully, this helps you in your latest adventures.

@JonathanKlick | www.vkernel.com
vmproteau
Enthusiast
Enthusiast

That was my assumption as well and you're right.....my designs typically utilize at least an N+1 (90%) sizing philosophy so, we generally avoid significant memory contention. Although, I'd assume any negative side effects would be some combination of Java load and ESX memory contention so, despite increased memory contention, I plan to continue to make reservation decisions on a case by case basis.

0 Kudos