I am trying to analyze the approximate consumption of RAM by various services and applications in SharePoint 2013. I know there is no perfect formula for this and that it depends on each real world situation and server setup. What I am looking for are general principles and approximations.
While Microsoft recommends that a variety of services and applications be segregated onto independent servers running dedicated services, such as: search, index, excel services, and distributed cache, I would like to investigate a variety of scenarios where the perfect farm topology does not exist, but services and applications must overlap. This will cause extra load on a server, I know, but understanding the possible resource drains on a server will help me understand how to tweak or throttle the server, or simply request additional hardware.
In my research on the amount of RAM consumed by SharePoint, I have created a list of numbers. Please let me know if my analysis is correct, or what to change to make it correct.
- A server OS should be allocated 2 GB.
- Distributed Cache should be allocated between 8 – 16 GB.
- Search index consumes up to 16 GB.
- Search analysis processing consumes up to 8 GB.
- Search crawl, content/query processing, and search administration consumes up to 8 GB.
- Excel Services will consume up to 50% of the remaining RAM.
- IIS worker processes can consume up to 1 – 2 GB
If all of these services/applications were run on a single application server they would consume memory based on the following math:
Minimal formula:
2+8+16+8+8+1=43 GB (not including excel services)
Maximum formula:
2+16+16++8+8+2=52 GB (not including excel services)
If this math is correct, would this correlate to a server (if running all these services/applications) needing at least 64 GB of RAM to operate? If so, then the following math would be used to calculate the excel services:
Minimal formula:
64 GB – 43 GB = 21 GB – 10.5 GB (excel)
leaving a total of 10.5 GB for other processes
Maximum formula:
64 GB – 52 GB = 12 GB – 6GB (excel)
leaving a total of 6 GB for other processes
Â
We are currently running 2 app servers and 2 WFE servers with each server having 32 GB of RAM. Is this enough memory to handle all these services/applications if it is managed correctly?
My primary goal is to understand how the memory utilization will or could be used by each of the processes/applications and then how best to throttle or manage that utilization.
My secondary goal is to understand how best to distribute the services/applications across the servers to balance the load. Given the server topology, would we be able to run with all the services on the app servers by better managing the resource consumption of the services or should we purchase extra servers to dedicate to specific services.
Thanks.
How are you coming to these numbers for memory consumed by each SA? Also, if you place each SA in it’s own Application Pool, you’ll be increasing overall memory usage on that host due to duplication of binaries kept in memory.