I’m gathering a few metrics around the Internet for SQL Server from people that I think really know how to run a SQL Server. This is a series of posts that I’m making to gather these metrics up for easy access later.
The short metric is:
Leave 4GB for the OS, or 10% of physical (or guest) memory, whichever is greater.
Examples: If I have the following amounts of RAM, I leave this for the OS.
- 16GB of RAM – leave 4GB since 4 > (16 * 10%)
- 32GB – leave 4GB since 4 > (32 * 10%)
- 64GB – leave 6.4GB since (64 * 10%) > 4
Essentially leave 4GB until you get to 48GB of RAM, then go to 10%.
Explanation: In the older x86 days there were all sorts of rules for setting memory for the OS and SQL Server. I won’t go into those, and for the time being we’re working in the x64 world, not x128. For that, you need to be sure the OS isn’t starved by SQL Server and unable to manage the host processes. These days 32GB isn’t expensive, and 4GB gives you a nice cushion at lower levels. At higher ones, you need