In guide will you show how to save resources by downsizing your VMware vCenter 6.7 in your homelab. The target is to save resources and get a better performance. I know in homelabs normally there are no unlimited resources. First of all, I would like to point out that this is not an official guide from VMware. This configuration should not be used in production. My vCenter is running on VMware Workstation. I think the biggest problem within a homelab is the RAM, so I will focus mainly on that in this articel.
If you want to check out the guide how to depoloy it in your environment, you can read this post. – Deploy VMware vCenter on VMware Workstation –
- Explanation of the default requirements
- Downsizing the services
- Get an overview on vCenter memory
- Summary of vCenter downsizing
- Update! Disable services for vCenter 7.x
Explanation of the default requirements
If you deploy a vCenter Server appliance 6.7 the minimum deployment will be 2 vCPUs and 10GB of RAM. In my case I have done a tiny deployment, so it is necessary to not edit the ressources at the deployment time. Otherwise it may happen that the installation fails.
Here you can see the Hardware Requirements for a vCenter Server Appliance with an Embedded or External Platform Services Controller
Number of vCPUs
|Tiny environment (up to 10 hosts or 100 virtual machines)||2||10 GB|
|Small environment (up to 100 hosts or 1,000 virtual machines)||4||16 GB|
|Medium environment (up to 400 hosts or 4,000 virtual machine)||8||24 GB|
|Large environment (up to 1,000 hosts or 10,000 virtual machines)||16||32 GB|
|X-Large environment (up to 2,000 hosts or 35,000 virtual machines)||24||48 GB|
Downsizing the services
To make the first steps in downsizing our vCenter appliance, we will check how the memory is allocated to the services. The easiest way to do this is to establish an SSH session on the vCenter appliance. To do this, I first enable SSH login on the appliance. To do this, log in to the vCenter appliance via the URL: https://YOURVCENTERAPPLIANCE:5480 with the root user. Go to “Access” and activate SSH Login.
Get an overview on vCenter memory
First, let us check the reservation of memory on your vCenter appliance. You can do that by logging in via ssh and enter “shell”. Now you will see, how the memory will be reservced to the single services. In this case 10GB. You can see it in the Total section.
If you want to know which services are required or running on vCenter you can check this link to get the well known names: https://kb.vmware.com/s/article/2109887
root@vcenter [ ~ ]# cloudvm-ram-size -l vmware-vpxd-svcs = 1045 vmware-stsd = 538 vmware-postgres-archiver = 5 vmware-netdumper = 20 vmware-mbcs = 128 vmware-updatemgr = 164 vmware-analytics = 192 vmware-vapi-endpoint = 256 vmware-certificatemanagement = 70 vmware-cm = 228 vsphere-ui = 853 vmware-vmon = 5 vmdnsd = 20 vmware-rbd-watchdog = 100 vmware-cis-license = 192 vmware-sca = 128 vmware-imagebuilder = 50 vmcad = 224 vmware-vpostgres = 699 vmware-topologysvc = 120 vmonapi = 15 vmware-perfcharts = 357 vmware-vsm = 160 vmware-vsan-health = 100 vmware-sts-idmd = 328 vmware-content-library = 473 vmware-vpxd = 1024 vmware-statsmonitor = 10 vmafdd = 22 vsphere-client = 853 vmware-trustmanagement = 70 vmware-eam = 168 vmdird = 22 vmware-rhttpproxy = 31 OS = 220 vmware-hvc = 40 vsan-dps = 246 vmware-pod = 100 vcha = 46 vmware-sps = 478 applmgmt = 200 TOTAL(MB) = 10000
If you take a look into your VMware vCenter 6.7 GUI, you will see a view services which are stopped by default after deployment. You can find this in the section “Serivces” in the Admin GUI of your appliance.
If you sum up this services. There are alredy 344 MB RAM for the following services:
- Auto Deploy
- ImageBuilder Service
- VMware Message Bus Configuration Service
- VMware vCenter High Availability
- VMware vSphere ESXi Dump Collector
In my case I can disable the followin Services. Because I don´t use the features in my homelab. I will post a link with further information if one was available. And how to disable the service.
VMware vSAN Data Protection Service
Explanation: feature not used
More information: https://kb.vmware.com/s/article/2145308
Command to disalbe the service:
service vmware-vsan-health stop chkconfig vmware-vsan-health off
VMware Performance Charts Service
service vmware-perfcharts stop chkconfig vmware-perfcharts off
Content Library Service
Explanation: no need in my home lab
Command to disalbe the service:
service vmware-content-library stop chkconfig vmware-content-library off
After disabling this service you will get an API Warning:
VMware vSphere Update Manager
service vmware-updatemgr stop chkconfig vmware-updatemgr off
VMware vSphere Authentication Proxy
Explanation: no need in my home lab, if I need it, I can activate it again
More information: VMware Docs Link
Command to disalbe the service:
service service vmcam stop stop chkconfig vmcam off
There are a lot of other services you can disalbe in a home lab. In my case for example want to use the HTML5 Client, so I leave it running. If you don´t need it, you can also disable the service für the UI.
Summary of vCenter downsizing
After that, we have 1682 MB saved for my home labe. My Appliace is running with 6 GB of ram without performance impacts on my lab. You can also try a smaller configuration, but in my case lower than 6 GB causes performance issues.
Sounds that not good? 4 GB less of memory. It´s one more server you can run 😉 ! Try it and let my know your feedback on this article in the comments.
Update! Disable services for vCenter 7.x
In vCenter 7.x you will have the problem, that the services are starting after a reboot of the applicane. Even if you have disabled the services as shown above.
Here you can find the guide to edit and disable your services as described above for VMware vCenter 7.x.
Disable vCenter 7.x Services
To disable the services on VMware vCenter 7.x you have to open a SSH session. If you have not activated the access to ssh yet, you should do that now over GUI or console of the appliance.
To get an overview on the services running on your appliance you can use the following command.
shell systemctl # for more details use this systemctl status
Services are shown up as *.service
Now you can go to /etc/vmware/vmware-vmon/svcCfgfiles/ and edit the json for the service you want to disalbe. You can use the same services shown on the beginning of the article. Here is a list of the files:
|Service Name||Service JSON|
|vSAN Data Protection Service||/etc/vmware/vmware-vmon/svcCfgfiles/vsan-dps.json|
|Performance Charts Service||/etc/vmware/vmware-vmon/svcCfgfiles/perfcharts.json|
Now open the json file with VI and go to the “StartupType” Section
Replace the “AUTOMATIC” Starttype with “DISABLED”.
Now you can restart your appliance and check out if the desired services are disabled persistently.
Check it out and try it yourself. Feel free to test it on your own and give me a feedback how it works for you. Also check out my other posts. Have fun. Feel free to share my site or post on social media. You can also follow me on Twitter @thomaspreischl