Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Possible Duplicate:
Can you help me with my capacity planning?

Currently our SQL server 2008 machine has 24 gb of memory.

After analyzing some reports (PAL) and performance counters, I came to the conclusion that the server could use some more memory.

What is a good way to determine how much memory I should put in the server? Is there any rule of thumb or anything I can look at?

Why would i go to 48, or 72, or 128..

share|improve this question

marked as duplicate by Tom O'Connor, voretaq7 Jul 26 '12 at 19:31

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

Put in as much as you can afford. Seriously. RAM is cheap.

What's the most your server can address? (You'll need to check with the manufacturer to find this, probably).

Put in the largest amount that the server can handle, and that your budget will extend to.

Without knowing more about the use-case and load of your server, how big your databases are, what the read/write load is like, and so on, it's difficult to give a more accurate answer.

share|improve this answer
The most it can address is 194 gb, after we upgrade from 2008 standard to Enterprise. But I don't think my boss will be happy if I say it should be 194, just because RAM is cheap. I know we need more than we have now, but why should i advice 64 or 128. There should be more things I can look at right? – Erik Dekker May 10 '12 at 9:38

Please bear in mind that the OS might have restrictions. If you want to utilize more than 32 GB Ram you will have to switch to windows server enterprise edition.

share|improve this answer
Good point, its a Windows Server 2008 R2 Standard right now, but we can upgrade it to Enterprise, thats not a problem. – Erik Dekker May 10 '12 at 9:01

It depends on the exact make and model of your server plus what memory you have in there now, the reason is that in some cases adding memory can slow down the whole memory subsystem. So while have more memory is always very useful in certain cases you can affect this one individual factor.

So let us know this info and we'll help you out.

share|improve this answer
We can go to 194 GB. Only thing i have to say is how much we need, some other guy here will look at what type it should be etc. – Erik Dekker May 10 '12 at 9:42

I think with such a server we are speaking of ECC memory, so it's not as cheap as regular RAM. How much is needed cannot be derived from the info you have given. You'd need to look into the RAM usage and if the swap file is used.

Generally one could say that the best performance is achieved when the whole database fits into the RAM. If that is not possible then the biggest and most-used tables should fit. Or those which don't have an index (which generally is bad practice and should be avoided) or are searched without usage of the index ("table scanning") row by row.

share|improve this answer

SQL Server will always want to take up as much memory as it needs, ideally to the point that it has the entire database cached in memory (writing to disk takes unnecessary time), so look at the size of your databases first (this might help, although you might already have taken this into account).

A rule of thumb I've always gone by is take 4gb off for the OS if RAM < 32gb, 8gb off if it's got more than 32gb, however your mileage will vary. There was an article posted on a while back (I can't find the link at the mo) which had a detailed breakdown of how SQL server uses memory which might help.

If you want to splash out, put in as much as you can afford but remember to take into account the change of OS version if you want to use more than 32gb (as previously mentioned).

share|improve this answer

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