I thought this might have been common knowledge, but after chatting with a VMware colleague who recently rebuilt his home lab, I realized it may not be the case. The vCenter Server Appliance (VCSA) is distributed as a virtual appliance and by default it is configured for 8GB of memory. However, this is definitely NOT the "minimum" amount of memory required to have a fully functional vCenter Server.

It looks like some people are just downloading the vCenter Server appliance and just sticking with the defaults of 8GB of memory which for a home lab is quite a large footprint, especially given you will probably want to install other virtual machines. The actual minimum for vCenter Server (Windows or Linux) is just 4GB and technically speaking, you can even get away with just 3GB for the vCenter Server Appliance (anything less, the system is extremely slow and unusable).

Here is a quick screenshot showing vCenter Server Appliance running with only 3GB of memory:

VMware also has a KB article detailing the minimum requirements for the vCenter Server Appliance based on the number of virtual machines and hosts you plan on running. For my home lab, I normally stick with the 4GB of memory and I have not had any issues. Hopefully this tip will help you save some memory for either your lab or even production environment for other workloads.

14 thoughts on “Quick Tip - Minimum amount of memory to run the vCenter Server Appliance

  1. Hi William,
    Lowering the RAM for the vCenter VA doesn’t automatically change the JVM Heap settings?
    So this needs to be configured manually to match the RAM ammunt set on the vCenter VA, right?

    Regards,
    Christian

  2. It won’t change jvm heap size. We can do both ways:

    1. Using web interface (https://vc:5480) to lower inventory size to small.
    2. If VM you tried to configure still smaller than 5GB (JVM config for small size mentioned above is 0.5+3G+1G), you can use CLI to change them in one line by login to shell prompt:

    # Usage: /usr/sbin/vpxd_servicecfg jvm-max-heap write tomcat_memsize is_memsize sps_memsize
    # example:
    /usr/sbin/vpxd_servicecfg jvm-max-heap write 256 1536 512

    But CLI did not handle other java services like SSO/vSphere Client Server/logBrowser, manual change its wrapper config is required (or search for JAVA_OPTS variable or -XmxNNNNm java cli option):

    SSO: /usr/lib/vmware-sso/bin/setenv.sh
    vSphere client server: /usr/lib/vmware-vsphere-client/server/bin/dmk.sh
    Log Browser: /etc/init.d/vmware-logbrowser

    Regards,
    Yite

  3. William,
    Great information. Do you have any suggestions for minimizing the memory settings for vCenter 6.0 appliance?

    Thanks

    • lololo … the files are different between 5.5 and 6.0
      In 5.5 I would make these changes;
      – Edit /usr/lib/vmware-vsphere-client/server/wrapper/conf/wrapper.conf, set wrapper.java.maxmemory=1024
      – Edit /usr/lib/vmware-vpx/inventoryservice/wrapper/conf/wrapper.conf, set wrapper.java.maxmemory=1536
      – Edit /usr/lib/vmware-vpx/sps/wrapper/conf/wrapper.conf, set wrapper.java.maxmemory=512

      Shutdown VM and change RAM from default 8GB to 4GB

      These settings are not longer in these files … and the inventory service folder/file is gone.

      Definitely not the same procedure.

        • Thanks William,
          So based on the information in the link that you sent, with the new dynamic memory resizing algorithm, there is no need to manually tweak config files. Just change the VM memory to ~4.5-6 GB of memory and power back on … and wait for it to boot. 😉
          You mention stopping unneeded services, is there an “elegant” way to stop those services?

          Thanks

Thanks for the comment!