0

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..

5 Answers5

2

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.

Tom O'Connor
  • 27,578
1

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.

http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778%28v=vs.85%29.aspx

0

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.

Chopper3
  • 101,808
0

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.

Martin Müller
  • 149
  • 1
  • 9
0

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 Brentozar.com 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).