0

We are looking into virtualizing a large SQL server. The virtualization would not support 1.5TB and the current server is well overspeced in relation to memory, so we are looking at reducing the amount SQL uses down to around 800GB. Any recommended calculation of how much memory to leave the OS would result in about 300GB, which would mean that we would need to provision 1.1TB.

300GB for the OS seems a lot to me. What considerations are there when looking to reduce this amount. The SQL server is obviously dedicated.

1
  • How big is the database itself?
    – J.D.
    Jan 19, 2023 at 13:52

2 Answers 2

2

There's no exact calculation, there are an extremely large number of factors that are almost exclusively local factors.

300GB for the OS seems a lot to me.

This entirely depends on all those factors.

What considerations are there when looking to reduce this amount.

The OS will need memory to keep track of memory. These are those things like VADs and PFNs. Keeping 1-2GB per 100GB of memory just for the OS to track, well... memory. Then there are drivers, which can change how much they used based on configurations, such as RSS for networking stacks, along with reserved memory for hardware, etc.

Software you install also needs some of that "OS" memory. How many pieces of flare does your company require? What is the sum of the max commit for each pieces of user-mode software? That will need to be added in. Hope you don't RDP to the server, there's another 1 GB or so if you don't do much. Do admins regularly use items like SSMS on that session? Add another 4-8GB under "OS" per session as a minimum. Run anything using chromium (edge, chrome, etc.), add another 10 GB per session.

Are we counting just max server memory for SQL Server? If so, you'll need to add in things not counted under that, such as threads stacks, heap usage, etc., so probably another 4-6 GB depending on the size of hardware.

Or Just Don't Try To Calculate Everything

I'm not going to list literally everything, but I think you get the idea. Since it's a virtual environment, why not start with 1 TB and monitor it. If there's constantly hundreds of GB of free memory, even after a few end of months or end of quarters, the admins can take it away next reboot. This doesn't mean you're done, you'll want to continue watching it, forever, especially if applications make upgrades, the number of users change, more C-Suites want more green dashboards, etc.

0

I agree with Sean about there being many factors but I've found that starting with this article helps me get started.

https://www.sqlskills.com/blogs/jonathan/how-much-memory-does-my-sql-server-actually-need/

If I have a dedicated server that doesn't have any other applications running (SSAS, SSIS, other stuff) then I straight up use Jonathan's calculation. If I have other stuff running then I start with his number and then remove some for those applications.

Either way, Sean is right that you monitor from wherever you start.

1
  • Its best to put the essential information from the link here as a link may disappear. Jan 22, 2023 at 5:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.