Homelab: Downsizing vCenter Server Appliance 6.5

In vSphere 6.5 the smallest supported memory configuration for the vCenter Server Appliance has been raised from 8GB to 10GB. The smallest "Tiny" deployment size allows up to 10 ESXi Hosts and 100 Virtual Machines. Resources in Homelabs are limited and you might want to lower the memory consumption of the vCenter Servcer Appliance. This article explains how to lower the resource consumption to be able to lower the memory to about 6GB without noticable impacts.

Please note that the smallest supported vCSA size is 2 vCPU and 10GB Memory. Any further downsizing is not supported by VMware. Don't do this in production.

Some vCenter Server Appliance Basics

The vCenter Server Appliance (vCSA) comes with a neat dynamic memory allocation functionality, that automatically adjusts the memory configuration based on the configured total memory. The allocation can be viewed with the cloudvm-ram-size command. The following output is from a "tiny" vCenter with 10GB memory:

# cloudvm-ram-size  -l
vmcad                =      224
vmafdd               =       22
vmware-rbd-watchdog  =      100
applmgmt             =      200
vmware-vsan-health   =      100
vmware-vsm           =      160
vmware-sps           =      478
vmware-stsd          =      538
vmware-vpostgres     =      699
vmware-psc-client    =      288
vmware-eam           =      168
vmware-sts-idmd      =      328
vmware-mbcs          =      128
vcha                 =       46
vmware-vmon          =        5
vmware-statsmonitor  =       10
vmware-perfcharts    =      357
vsphere-client       =      853
vmonapi              =       15
vmware-cm            =      228
vmware-rhttpproxy    =       31
vmdird               =       22
vmware-imagebuilder  =       50
vmware-sca           =      128
vmware-vpxd          =     1024
vsphere-ui           =      853
vmware-vapi-endpoint =      256
vmware-content-library =    473
vmdnsd               =       20
vmware-cis-license   =      192
vmware-updatemgr     =      164
vmware-vpxd-svcs     =     1045
OS                   =      775
vmware-netdumper     =       20
TOTAL(MB)            =    10000

After increasing or reducing the virtual machine memory, each service is adjusted automatically but they will never go below 10000MB. If you want to know how far each service can grow, take a look at the configuration file at /etc/vmware/service-layout.mfx.

Dispensable Services

Prior to actually lower the memory you should consider disabling services. Disabling services is always a tradeoff between functionality and resources requirements. The following services are not running by default and are already lowering the resource consumption by 294MB.

ServiceMBService Name
vmware-rbd-watchdog100VMware vSphere Auto Deploy Waiter
vmware-mbcs128VMware Message Bus Configuration Service
vcha46VMware vCenter High Availability
vmware-netdumper20VMware vSphere ESXi Dump Collector

Another few services can be disabled without major impact to the vCenter:

ServiceMBService Name
vmware-vsan-health100VMware VSAN Health Service
vmware-sps478VMware vSphere Profile-Driven Storage Service
vmware-perfcharts357VMware Performance Charts
vmware-content-library473VMware Content Library Service
vmware-updatemgr164VMware Update Manager
vsphere-ui853VMware vSphere Client (HTML5)

 

VMware vSAN Health Service
If vSAN is not in use in the infrastructure managed by the vCenter Server it is safe to disable the vSAN Health Service. Disabling the vSAN Health Service is also explained in VMware KB2145308

VMware vSphere Profile-Driven Storage Service
This service is required when using Virtual SAN, Virtual Volumes or any other policy-driven Storage scenarios.
[Update: Stopping this service leads to problems when creating or migration Virtual Machines.]

  • A general system error occurred:  PBM error occurred during QueryAllAssociatedProfiles: Connection refused
  • A general system error occurred: PBM error occurred during PreMigrateCheckCallback: No connection could be made because the target machine actively refused it.

VMware Performance Charts
In the vSphere Web Client you can view pre-rendered performance graphs for supported objects within Performance > Overview. Disabling this services removes this feature and an error message is displayed when you open the Performance Overview Tab. The graphs in the Advanced view are not affected, they still work.

VMware Content Library Service
Removes the Content Library functionality. After disabling this services you also see a warning for the vAPI Endpoint. However, I have not noticed any further problems.

VMware Update Manager
Since vSphere 6.5 the Update Manager is included in the vCenter Server Appliance, which is great. If you don't need it, you can disable the Service. Update Manager related tabs will remain in the Client but when you open it you see an error message.

VMware vSphere Client (HTML5)
The HTML5 based Webclient is a new feature in vSphere 6.5 and will probably replace the Flash-based client in future releases. If you don't want to use it, it is safe to disable.

Disable Services

To disable a service, open the vSphere Web Client and navigate to Administration > Deployment > System Configuration > Services. From here you can stop services and configure the Startup Type to manual which will prevent services from starting automatically.

Stop a running service

 Disable service autostart

How far can I lower the vCSA Memory?

When you've disabled all services mentioned in this article you should be able to reduce the memory by about 2.2GB:

ServiceMBService Name
vmware-vsan-health100VMware VSAN Health Service
vmware-sps478VMware vSphere Profile-Driven Storage Service
vmware-perfcharts357VMware Performance Charts
vmware-content-library473VMware Content Library Service
vmware-updatemgr164VMware Update Manager
vsphere-ui853VMware vSphere Client (HTML5)
vmware-rbd-watchdog100VMware vSphere Auto Deploy Waiter
vmware-mbcs128VMware Message Bus Configuration Service
vcha46VMware vCenter High Availability
vmware-netdumper20VMware vSphere ESXi Dump Collector
TOTAL2241

How much you can actually lower your vCSA memory depends on your Homelab size and your performance requirements. I've downsized my vCenter managing 4 ESXi Hosts to 6GB and haven't noticed any issues. Sure you can lower it further, but at 5 GB I started to notice a performance impact.

Can I disable additional Services?

In this article, I've mentioned services that are kind of safe to disable. It might be possible to disable more services but I wouldn't recommend so. If you want to explore further, here is a list of all services with their memory allocation. Be careful when disabling services from starting with the appliance when you don't know the impact as this can prevent the vCenter from starting.

ServiceMBService Name
vmcad224VMware Certificate Service
vmafdd22VMware Authentication Framework
vmware-rbd-watchdog100VMware vSphere Auto Deploy Waiter
applmgmt200VMware Appliance Management Service
vmware-vsan-health100VMware VSAN Health Service
vmware-vsm160VMware vService Manager
vmware-sps478VMware vSphere Profile-Driven Storage Service
vmware-stsd538VMware Security Token Service
vmware-vpostgres699VMware Postgres
vmware-psc-client288VMware Platform Services Controller Client
vmware-eam168VMware ESX Agent Manager
vmware-sts-idmd328VMware Identity Management Service
vmware-mbcs128VMware Message Bus Configuration Service
vcha46VMware vCenter High Availability
vmware-vmon5VMware Service Lifecycle Manager
vmware-statsmonitor10VMware Appliance Monitoring Service
vmware-perfcharts357VMware Performance Charts
vsphere-client853VMware vSphere Web Client
vmonapi15VMware Service Lifecycle Manager API
vmware-cm228VMware Component Manager
vmware-rhttpproxy31VMware HTTP Reverse Proxy
vmdird22VMware Directory Service
vmware-imagebuilder50VMware Image Builder Manager
vmware-sca128VMware Service Control Agent
vmware-vpxd1024VMware vCenter Server
vsphere-ui853VMware vSphere Client (HTML5)
vmware-vapi-endpoint256VMware vAPI Endpoint
vmware-content-library473VMware Content Library Service
vmdnsd20VMware Domain Name Service
vmware-cis-license192VMware License Service
vmware-updatemgr164VMware Update Manager
vmware-vpxd-svcs1045VMware vCenter-Services
vmware-netdumper20VMware vSphere ESXi Dump Collector
OS775 Operating System

 

6 thoughts on “Homelab: Downsizing vCenter Server Appliance 6.5”

  1. You'll want to leave profile driven service running if you want to deploy new VMs or do vMotion else you get "PBM Error": KB2118551

  2. Christopher Thorjussen

    Do you change the values in /etc/vmware/service-layout.mfx to 0 for the services you disable, or is it automatically zeroed?

    1. No. You don't have to and should not edit this file. When a service is not running, it does not consume memory and even when it is running it does not automatically take all memory. The value is only the limit.

      However, you can change it if you like with cloudvm-ram-size -C [size] [name]:
      root@vc [ ~ ]# cloudvm-ram-size -l vmware-netdumper
      vmware-netdumper = 20
      root@vc [ ~ ]# cloudvm-ram-size -C 15 vmware-netdumper
      root@vc [ ~ ]# cloudvm-ram-size -l vmware-netdumper
      vmware-netdumper = 15

      ...but there is no need to change anything.

  3. Thanks. I've disabled the same service as you.
    Now I can start the vcsa vm with 8 GB instead of 10 GB memory. I'm surpised it works (maybe not a good idea). Not sure if it's because of disabling services. Anyway, I'm struggling with my 16 GB memory PC. My vcsa 6.5 is handling 2 ESXi hosts (both including 1 to 5 vms) and a Windows Server. I welcome any other tips on vmware consumption.

  4. I can even start vcsa with 1 gb ram. Of course it won't work well. But it must have been a disabled service that checks the minimum memory required.

    1. There is no service that checks minimum memory requirements. As explained in the article, I wouldn't go below 6GB. Of course, it works and the services will start, but at some point it will be to slow.

Leave a Reply to Christopher Thorjussen Cancel reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.