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.

Service MB Service Name
vmware-rbd-watchdog 100 VMware vSphere Auto Deploy Waiter
vmware-mbcs 128 VMware Message Bus Configuration Service
vcha 46 VMware vCenter High Availability
vmware-netdumper 20 VMware vSphere ESXi Dump Collector

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

Service MB Service Name
vmware-vsan-health 100 VMware VSAN Health Service
vmware-sps 478 VMware vSphere Profile-Driven Storage Service
vmware-perfcharts 357 VMware Performance Charts
vmware-content-library 473 VMware Content Library Service
vmware-updatemgr 164 VMware Update Manager
vsphere-ui 853 VMware 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:

Service MB Service Name
vmware-vsan-health 100 VMware VSAN Health Service
vmware-sps 478 VMware vSphere Profile-Driven Storage Service
vmware-perfcharts 357 VMware Performance Charts
vmware-content-library 473 VMware Content Library Service
vmware-updatemgr 164 VMware Update Manager
vsphere-ui 853 VMware vSphere Client (HTML5)
vmware-rbd-watchdog 100 VMware vSphere Auto Deploy Waiter
vmware-mbcs 128 VMware Message Bus Configuration Service
vcha 46 VMware vCenter High Availability
vmware-netdumper 20 VMware vSphere ESXi Dump Collector
TOTAL 2241

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.

Service MB Service Name
vmcad 224 VMware Certificate Service
vmafdd 22 VMware Authentication Framework
vmware-rbd-watchdog 100 VMware vSphere Auto Deploy Waiter
applmgmt 200 VMware Appliance Management Service
vmware-vsan-health 100 VMware VSAN Health Service
vmware-vsm 160 VMware vService Manager
vmware-sps 478 VMware vSphere Profile-Driven Storage Service
vmware-stsd 538 VMware Security Token Service
vmware-vpostgres 699 VMware Postgres
vmware-psc-client 288 VMware Platform Services Controller Client
vmware-eam 168 VMware ESX Agent Manager
vmware-sts-idmd 328 VMware Identity Management Service
vmware-mbcs 128 VMware Message Bus Configuration Service
vcha 46 VMware vCenter High Availability
vmware-vmon 5 VMware Service Lifecycle Manager
vmware-statsmonitor 10 VMware Appliance Monitoring Service
vmware-perfcharts 357 VMware Performance Charts
vsphere-client 853 VMware vSphere Web Client
vmonapi 15 VMware Service Lifecycle Manager API
vmware-cm 228 VMware Component Manager
vmware-rhttpproxy 31 VMware HTTP Reverse Proxy
vmdird 22 VMware Directory Service
vmware-imagebuilder 50 VMware Image Builder Manager
vmware-sca 128 VMware Service Control Agent
vmware-vpxd 1024 VMware vCenter Server
vsphere-ui 853 VMware vSphere Client (HTML5)
vmware-vapi-endpoint 256 VMware vAPI Endpoint
vmware-content-library 473 VMware Content Library Service
vmdnsd 20 VMware Domain Name Service
vmware-cis-license 192 VMware License Service
vmware-updatemgr 164 VMware Update Manager
vmware-vpxd-svcs 1045 VMware vCenter-Services
vmware-netdumper 20 VMware vSphere ESXi Dump Collector
OS 775  Operating System

 

  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?

    • 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.

    • 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 Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>