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.
My research on the memory consumed by each SA was gathered from a variety of online posts shown below.
Server OS resources:
I have read that it is good to keep 1-2GB of RAM dedicated to the application server.
Distributed Cache resources:
Nick Patel wrote a good article http://nikpatel.net/2013/09/24/adjust-cache-size-of-the-sharepoint-2013-distributed-cache-service-part-i-overview/Â
•For 24 GB RAM SharePoint server running only Distributed Cache service in dedicated mode, you     shouldn’t be allocating more than 8 GB RAM cache size (remember 16 GB is max recommended total memory allocation) to the Distributed Cache.
•For 16 GB RAM SharePoint server running only Distributed Cache service in dedicated mode, you     shouldn’t allocate more than 7 GB RAM cache size (16 GB – 2 GB for server OS memory = 14 GB Distributed Cache memory allocation) to the Distributed Cache.
So my take away from this is that since Distributed Cache is a critical service and since I am running a server with 32GB of memory that we would want to allocate no more than 8 GB of memory.
Search index resources:
As posted on this Technet article http://technet.microsoft.com/en-us/library/dn727118(v=office.15).aspx#BKMK_HWMiniIndex , Microsoft recommends dedicating 16GB of RAM to search index component.
Search analytics processing component:
As posted on this Technet article http://technet.microsoft.com/en-us/library/dn727118(v=office.15).aspx#BKMK_HWMiniIndex , Microsoft recommends dedicating 8-16GB of RAM to search analytics processing component.
Search crawl, content processing, query processing, and search administration component:
As posted on this Technet article http://technet.microsoft.com/en-us/library/dn727118(v=office.15).aspx#BKMK_HWMiniIndex , Microsoft recommends dedicating 8-16GB of RAM to search these components.
Excel Services resources:
As posted on this Technet article http://technet.microsoft.com/en-us/library/gg398058(v=office.14).aspx#recommendations , Microsoft states in the “Performance-Related Excel Services Settings” section that the “Maximum Private Bytes” by default Excel Calculations Services will use up to 50% of the memory on the computer.
IIS Worker process resources:
I simply added the w3wp processes memory usage, shown in Task Manager, that was running on the server.
So, in the end I simply added all the individual services’ memory usage together to come up with my suggested formula. I may have mis-understood the information on SA memory usage from these articles. Do you have any recommendations on how I should configure this farm?