Monday, August 20, 2012

vCenter Server tomcat.exe java.exe

SkyHi @ Monday, August 20, 2012

For those of you who have installed VMware vCenter Server 4.1, have you noticed anything new during the installation process?  A new screen was introduced at the end of the installation wizard for specifying the anticipated size of the virtual infrastructure which the respective vCenter Server would be managing.  There are three choices here: SmallMedium, & Large.  Sorry, no Supersize available yet.  If you require this option, I’m sure VMware wants to talk to you.
SnagIt Capture
The selection you make from the installation wizard not only defines the Maximum Memory Poolvalue for the Java Virtual Machine, but also the Initial Memory Pool value.  Following is a chart which takes a look at vCenter Server 4.0 & 4.1 JVM Memory Configuration comparisions:
vCenter/JVMInitial Memory PoolMax Memory PoolThread Stack Size
4.0128MB1024MB1024KB
4.1 Small (<100 default="default" hosts="hosts" strong="strong">256MB1024MB1024KB
4.1 Medium (100-400 hosts)256MB2048MB1024KB
4.1 Large (> 400 hosts)512MB4096MB1024KB
As noted by the table above, in vCenter Server 4.0, the JVM Maximum Memory Pool was configured by default at 1024MB.  The vCenter Server 4.1 installation also defaults to 1024MB (Small <100 attention="attention" comparison="comparison" difference="difference" hosts="hosts" if="if" in="in" left="left" one="one" other="other" pay="pay" strong="strong" style="border: 0px; color: #2e2e2e; margin: 0px; outline: 0px; padding: 0px;" the="the" to="to" unchanged.="unchanged.">Initial Memory Pool
. By default, vCenter 4.1 uses twice the amount of RAM out of the gate than previous versions.
Although the installation wizard JVM tuning component is new in 4.1, the ability to tune the JVM for vCenter is not.  The Configure Tomcat application has been available in previous versions of vCenter.  Some organizations with growing infrastructures may have been instructed by VMware support to tune the JVM values to overcome a vCenter issue having to do with scaling or some other issue.
SnagIt Capture
SnagIt Capture
Judging from the table, one can assume that the 1024MB value was appropriate for managing less than 100 hosts in vCenter 4.0.  As a point of reference, the Configuration Maximums document states that 300 hosts can be managed by vCenter 4.0.  This would imply that managing 100 hosts or more with vCenter 4.0 requires an adjustment to the out of box setting for the JVM Maximum Memory Pool (change from 1024MB to 2048MB). 
With vCenter 4.1, VMware has improved scaling in terms of the number of hosts a vCenter Server can manage.  The Configuration Maximums document specifies vCenter 4.1 can manage 400 hosts but the table above implies VMware may be preparing to support more than 400 hosts in the near future.  And that’s awesome because vCenter Server sprawl sucks. Period.
So have fun tuning the JVM but before you go, a few parting tips:
  • The Initial Memory Pool value defines the memory footprint (Commit Size) of the Tomcat process when the service is first started.  The Maximum Memory Pool defines the memory footprint which the Tomcat process is allowed to grow to.  Make sure you have sufficient RAM installed in your server to accommodate both of these values.
  • Setting the Initial Memory Pool to a value greater than the Maximum Memory Pool will prevent the Tomcat VJM from starting.  I thought I’d mention that before you spend too much time pulling your hair out.
  • If you would like to learn more about tuning Tomcat, vast resources exist on the internet.  Thislooks like a good place to start.


REFERENCES
http://www.boche.net/blog/index.php/2010/09/06/vcenter-server-jvm-memory/
http://wiki.bonusbits.com/main/HowTo:Fix_Tomcat6.exe_Using_a_Large_Amount_of_Memory_for_Vmware_vCenter