Minimizing the vCenter memory footprint – Appliance

In my previous post I described how to reduce the vCenter memory requirements on Windows. Basically the same is true for the vCenter appliance, but the files are a bit harder to find. Besides that the same disclaimer applies – this is in no way supported by VMware.

Single Sign On:

  • /usr/lib/vmware-sso/bin/setenv.sh
  • Change “JVM_OPTS” (default: “-XX:MaxPermSize=256M -Xms2048m -Xmx2048m”) to “-XX:MaxPermSize=128M -Xms128m -Xmx256m”

Inventory Service:

  • /usr/lib/vmware-vpx/inventoryservice/wrapper/conf/wrapper.conf
  • Set wrapper.java.maxmemory (default: “3072”) to “384” (MB)

Tomcat:

  • /etc/vmware-vpx/tomcat-java-opts.cfg
  • Change the default “-Xmx1024m -XX:MaxPermSize=256m” to “-Xmx512m -XX:MaxPermSize=256m” (or MaxPermSize to half of the Xmx value chosen before)

Web Client:

  • /usr/lib/vmware-vsphere-client/server/bin/dmk.sh
  • Change “JAVA_OPTS” (default: “-Xmx1024m -Xms512m -XX:PermSize=128m -XX:MaxPermSize=256m”) to “-Xmx512m -Xms256m -XX:PermSize=128m -XX:MaxPermSize=256m”
    (The variable name has changed with 5.1U1, before it was “JVM_OPTS”)

Log Browser:

  • /etc/init.d/vmware-logbrowser
  • Set “HEAP_PROP” (default: “-Xms128m -Xmx512m”) to “-Xms128m -Xmx256m”

Profile Driven Storage:

  • /usr/lib/vmware-vpx/sps/wrapper/conf/wrapper.conf
  • Set wrapper.java.initmemory (default: “256”) to “128” (MB)
  • Set wrapper.java.maxmemory (default: “512”) to “256” (MB)

After these adjustments the VM memory can safely be reduced to 4-5 GB. But beware that – sadly enough – the Tomcat JVM still tends to eat up memory over time. Therefore I prefer to stick to 5 GB RAM, and here’s the result:

top – 11:58:23 up 5 days, 19:05,  1 user,  load average: 0.34, 0.57, 0.71
Tasks: 142 total,   1 running, 141 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.8%us,  1.0%sy,  0.0%ni, 97.8%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   5091868k total,  4928832k used,   163036k free,   402632k buffers
Swap: 15735804k total,    23892k used, 15711912k free,  1445808k cached

PID USER      PR  NI  VIRT  RES  SHR S   %CPU %MEM    TIME+  COMMAND
4758 root      20   0 1244m 870m  10m S      0 17.5  55:40.59 java
5267 root      20   0  985m 620m  12m S      0 12.5  19:34.38 java
3490 root      20   0  989m 475m  12m S      1  9.6  46:57.03 java
3839 ssod      20   0  905m 333m  10m S      0  6.7  19:01.57 java
4980 root      20   0  702m 238m  11m S      0  4.8  17:36.23 java
4541 root      20   0  459m 227m  91m S      1  4.6  72:21.12 vpxd
3193 root      20   0  558m 125m  10m S      0  2.5   9:21.73 java

An update for version 5.5 is available here.

2 thoughts on “Minimizing the vCenter memory footprint – Appliance

  1. Thanx,
    your guide helped me to reduce mem used by VC appliance to under 4GB (yes I know this is a bit low, but that is all I can use).

    • Hi Mirc!

      You’re welcome, and thanks for the feedback.
      But I’m afraid this really is a bit low, at least if the VCA is running continuously. As I wrote, the JVMs tend to eat up memory over time, so I’d suggest you reboot your VCA every few weeks. Mine completely allocated its 5 GB after about two months. Without any performance impact, so I suppose it would have run fine for some more time. But the update to 5.1U1b was a good occasion to reboot, even though it wasn’t required.

      Cheers,
      Martin

Leave a Reply

Your email address will not be published. Required fields are marked *

*

code