Server Farm Resource Recommendations
No two Cherwell server farms are identical because of the user load they are under, the CSM content and configuration, and how the product is used. Our recommendations assume that your network, load balancer, and SQL Server infrastructure are inherently scalable to the size needed.
When promoting from a single server to a Cherwell server farm model, remember that a Cherwell server farm incurs overhead that lowers the number of concurrent users serviced by a single machine. Three load-balanced servers is the standard recommendation to handle the same user load with high-availability.
When designing the configuration for the Cherwell server farm, use these guidelines for CSM components.
Use the same hardware across servers for easier management and performance predictability. Be careful when using virtual machines. If all virtual machines are on the same physical hardware and the server goes down, the web farm stops working.
If CSM is installed on a single server using a big server approach (8 core, 32 GB and up) and not commodity hardware (4 core, 16 GB), determine if the same hardware configuration should be kept for each server or if there is a cost saving opportunity by moving to commodity hardware when moving to a Cherwell server farm. If you decide to move to less expensive hardware, there is no exact equation for how many servers are needed, but keep the following in mind: load-balanced servers are typically CPU heavy, so the CPU is the first and most important factor in the multiplier.
- We recommend no more than 12 active nodes, but increase the size of each node once you exceed 10 nodes. For example, increase each node from eight cores instead of four. For optimal performance, do not exceed 36 cores on each node.
One CPU core per 50 concurrent users; minimum of two to start.
This ratio may be higher or lower, depending on the content in the system and how that content is used.
50 MB of memory per session for the Cherwell Application Server and web server machines.
500 MB of storage per license per year.
The Windows IIS features HTTP Activations and Non-HTTP Activations must be installed. See Configure IIS for CSM.
Machine keys must be generated in IIS on one CSM server and copied to IIS on all CSM servers in the Cherwell server farm. See Configuring Server Farms in IIS.
CSM is compatible with Redis Labs Enterprise Cluster (RLEC). Use RLEC to configure Redis environments. See the System Requirements for supported versions.
You can run Redis in a single-server or clustered environment. Redis Cluster provides the ability to:
- Automatically shard (split) your dataset among multiple nodes.
- Continue operations when a subset of the nodes are experiencing failures or are unable to communicate with the rest of the cluster.
Guidelines for a Master/Replica Setup
- Use a single-server Redis scenario for systems with up to 1,300 users.
- A machine or virtual machine should be dedicated to Redis.
- The dedicated machine should have exactly two CPUs: one is used by the system and is mostly idle; the other CPU is used by Redis. Allocating three CPUs does not hurt Redis, but the third CPU will never be used.
Guidelines for a Redis Cluster Setup
- The threshold for determining when you need a Redis Cluster is between 1,300 and 1,800 concurrent users.
- To gauge how much memory you will need per user, divide the total memory needed by the clusters. For example, if you need a total 12 GB of RAM for Redis, use three 4 GB Redis clusters.
- Redix 5.x or later is required for using Redis Cluster with CSM.
- To learn more, see the Redis Cluster documentation.
Guidelines for All Redis Configurations:
CPU speed is not a crucial factor. The Redis server CPU remains dormant most of the time and it takes a lot of traffic to increase the CPU to a heavy load. By the time the CPU is getting fatigued, the network connection might already be the bottleneck.
10 MB of memory usage per technician/Browser Client user session and 5 MB for each CSM Portal user session. For example: 1,000 concurrent Browser Client users x 10 MB/user = 10 GB of RAM per server.
Redis is used as a centralized in-memory database. Everything stored in Redis is kept in RAM. There should be enough RAM to serve concurrent users. Dedicate 10 MB of memory per session for Redis Servers; 2 CPU cores per server.
When Redis is hosted on a virtual machine, it is critical that memory is never oversubscribed.
For high availability, you need a minimum of two Redis processes and three sentinel processes. The sentinel processes to not need to run on their own server; they can run with Redis or on the web servers used by CSM.
Sticky sessions or other methods of load balancing where Redis is not deployed are not supported.
See these sections for additional guidance:
Load Balancer Requirements
Non-load-balanced CSM web servers are memory intensive, but load-balanced servers free up memory as soon as a request is ended.
- You can use most load balancers and load balancing methods with CSM.
- Cherwell does not recommend using IIS ARR for a load balancer in a production environment.
Microsoft SQL Server Guidelines
The database server size (CPU and memory) primarily depends on CSM content configuration and use. Server size does not scale directly with the number of concurrent users unless they are doing almost exactly the same work.
- Traffic between each web server and Redis: Redis must be deployed in a high-speed, low-latency, directly connected environment. This is typically a 10 GbE network (dedicated is best), but this number is highly dependent on your content. Each page on the browser might turn into multiple web requests, depending on the page content.
In general, if server farms are deployed, the network interface to the Redis server can require very high bandwidth. If possible, utilize dedicated network connections for Redis traffic to and from server farm servers.
- Traffic between the CSM web applications and the web server: This is highly dependent on your content and outside the scope of this document. Bottlenecks are related to the volume of traffic between the Cherwell web servers.
Network traffic between browser and server is not affected by a server farm configuration, and therefore is not considered in this document, but evaluate if the network is prepared to support the traffic.
Tested Redis Configurations
CSM has been tested with Redis in the following environments:
- Windows with a single instance.
- Linux master/replica with sentinel.
- Windows master/replica with a sentinel.
When configuring a cluster environment in Cherwell Server Managers, users only need to provide one IP for the cluster. In master/replica environment, add the IPs of the master and all replicas in the Connect to field when configuring.
- Redis Labs Enterprise Cluster.
When configuring a RedisLab Enterprise Cluster environment in Cherwell Server Managers, users only need to provide one IP for RLEC. In master/replica environment, add the IPs of the master and all replicas in the Connect to field when configuring.