Often times I’m called in to perform a health check of a VMware Horizon environment due to a performance or operational issue. These issues make the environment unstable and effect user productivity. There are various things we can do in the environment to optimize the persistent or non-persistent virtual desktops, but first we need to make sure the virtual desktop infrastructure is configured properly.
Proper configuration entails proper server sizing. More often than not, these servers are not sized properly. Under-sizing causes performance issues and over-sizing wastes resources.
Here is a guide to server sizing:
- The Connection Server(s) need to be at a minimum of 4vCPU and 10GB of RAM and ideally there will be at least 2 of these in any environment and they are load-balanced on port 443 for the internal URL for the Horizon environment. Hardware Requirements for Horizon Connection Server.
- The Composer Server needs to be at a minimum of 4vCPU and 8GB of RAM and Composer is a standalone service and it is recommended that each vCenter have its own Composer Server. Hardware Requirements for Standalone View Composer.
- The Security Server(s) need to be at a minimum of 4vCPU and 10GB of RAM. These servers are essentially Connection Servers so they need to be sized identically. Once again, ideally there will be at least 2 of these in any environment and they are load balanced on TCP port 443, TCP port 80, TCP port 4172, TCP port 8443, UDP Port 4172 and UDP port 8443 for external access to the environment and have an external URL that is defined which is different than the internal URL. Hardware Requirements for Horizon Connection Server.
- The Access Point Appliance(s) are imported at 2vCPU and 4GB of RAM and these specifications shouldn’t be changed. For a highly available and fault tolerant configuration there should be 2 of these in any environment and they are load balanced on TCP port 443, TCP port 80, TCP port 4172, UDP Port 4172 and UDP port 443 for external access to the environment. Here is another blog post that explains why the Access Point Appliance should be used instead of the Security Server: How to Deploy VMware Horizon Access Point Via PowerShell.
Now let’s tally up the resources.
Running in a redundant environment using the Security Server model, we will need 28vCPU and 68GB of RAM (2 Internal Connection Servers, 2 External Connection Servers which are paired to Security Servers, 2 Security Servers and 1 Composer Server).
In a non-redundant environment using the Security Server model we will need 16vCPU and 40GB of RAM (1 Internal Connection Server, 1 External Connection Server which are paired to the Security Server, 1 Security Server and 1 Composer Server).
If we run the same redundant configuration using the Horizon Access Point model we will need 16vCPU and 32GB of RAM (2 Connection Servers, 2 Access Point Appliances and 1 Composer Server). In a non-redundant environment using the Access Point model we will need 10vCPU and 22GB of RAM 1 Connection Server, 1 Access Point Appliance and 1 Composer Server).
Why do you need so much RAM on the Connection Servers and the Security Servers?
These servers run a java virtual machine process that scales itself to the amount of RAM that the server has. This java virtual machine process is the main process to make the environment function.
The good news is that if your Horizon environment is running version 6.x+ the java virtual machine process can dynamically adjust. So if the Connection/Security Server is powered off, resources adjusted and powered back on, everything should be fine.
Unfortunately, if your environment is not at or above this version, adjusting the resources on the Connection/Security Server does not make the java virtual machine process adjust.
You can read more about the differences and if you should deploy the Security Server model or the Access Point model here.
Lewan Technology is a VMware Premier Solutions Partner headquartered in Denver, Colorado, with certified technical professionals in server virtualization, business continuity, desktop virtualization, hybrid cloud, management operations and software-defined storage.