You think your SQL on SBS 2008 is taking up too much ram?  First off be sure to follow this blog post and do this script:

SBS 2008 Console May Take Too Long to Display Alerts and Security Statuses, Display Not Available, or Crash – The Official SBS Blog – Site Home – TechNet Blogs:

If you still think it’s sucking up too much ram, determine which SQL instance is sucking up the ram by matching up the task to the PID in the task manager.

Find the PID

Then at a command prompt type in tasklist /svc and browse to find the PID number that matches your memory hogger.

(keep in mind in my sample this isn’t that bad at all, I’m just doing this for blogging example purposes).  In my case PID of 2076 matches up to

Which is WSUS and SharePoint.

go to the SQL management studio express and right mouse click and run as admin.

Now connect to instances using certain syntax:

Servername\SBSMonitoring is the SQL instance for SBS monitoring.

The instance for SharePoint is \\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query   which I can never remember so I have to google it up all the time.

Now right mouse  on the top of the  \\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query and click on properties.  Now go down to the Memory section and put some throttles on it as you see fit.

Mind you I’m not sure we have come to a conclusion what we want in those max server memory sections as we did in SBS 2003 ….

(to refresh your memory —

MSFW 128
WSUS 256  (per Dr. J’s blog)
SBSMonitoring  70
SharePoint  (I didn’t tweak this)
If CRM is on the box, then limit SharePoint to 384

But you can certainly use those as a guide.

Yes Eriq Neale did it first  – but I figured this way I’ll remember it better.


2 Responses to Throttling the memory in SBS 2008

  1. Dean says:

    Or……. you could just leave SQL alone. Everyone thinks that SQL must somehow be memory managed because it’s just to stupid to take care of memory itself. Well you know what. It’s not really stupid. It’s made to take as much ram as it can ( let’s all repeat now… Because Unused RAM Is Wasted RAM ) and to give back memory whenever another app requests it. Those two settings that Microsoft misnamed that really really look like they set the lower and upper memory boundries that SQL can use don’t really set the lower and upper memory boundries that SQL can use.

    So really people, leave SQL alone to do it’s thing.

  2. Ruben says:

    That’s fine and dandy Dean and I think most of us admins know that SBS 2008 uses dynamic memory management for instances such as SQL memory usage. However what you said has a few problems. Unused RAM ISNT Wasted RAM. There are times when RAM usage may briefly need to rise and them drop. SQL doesn’t release RAM that quickly. I’ve let this issue run for a year now because I was told the same thing you are saying. However, I’ve often found myself waiting entirely too long to wait on SQL to release RAM so that I can open up Backup Exec, connect remotely etc. In my professional experience, there is always a benefit to having some ram ~1GB at least free on reservation for administrative tasks. The machine may have things to do but so do Administrators. So really let’s all repeat now, “STFU.”