Limited SQL instances but server still struggling

Recently we came across an issue whereby one of our servers was having terrible memory issues (worse than Dory from Finding Nemo).  This should be a simple one, limit the SQL instances, we thought!

The setup was a Windows Server 2008 R2 Standard (64-bit) )with 2 SQL instances running, one for each of our main applications.  To make things a little more interesting SQL Server 2005 and SQL Server 2008 were in play.  This shouldn't be an issue though, limiting the memory is the same process for both versions!

Limiting Memory Usage for an SQL Instance

  1. Open SQL Server Management Studio
  2. Log into the first instance
  3. Right-click on the instance name at the top of the Object Explorer and select Properties
  4. Select the Memory page from the left-hand menu
  5. Enter the size of memory you want to limit your instance to (in MegaBytes)
  6. Press OK
Repeat steps 1 - 6 for each instance you have configured within your SQL server(s)

Now at this point we thought we could sit back, throw our feet on the desk and basque in our technical glory at bringing the server to a happy, purring state.  This was not to be!

We opened Task Manager and watched our sqlservr.exe (or sqlservr.exe *32) processes decrease in memory usage as we expected.  Out of nowhere, another sqlservr.exe process poked it's head out like that one creepy uncle you try to avoid at a family wedding.  We only have 2 known SQL instances so where was this 3rd one coming from.  Long story short this was the process for the Windows Internal Database.

Limiting Memory Usage for Windows Internal DB Instance

To limit the memory usage of this instance you need to go through the following steps:
  1. Open SQL Server Management Studio
    • Server type:  Database Engine
    • Server name:  \\.\pipe\mssql$microsoft##ssee\sql\query
    • Authentication:  Windows Authentication (must be Windows Auth)
  2. Right-click on the instance name at the top of the Object Explorer and select Properties
  3. Select the Memory page from the left-hand menu
  4. Enter the size of memory you want to limit your instance to (in MegaBytes)
  5. Press OK
 Personally speaking, I set the limit for the Windows Internal DB to 2GB (2048MB)


What is the Windows Internal Database used for?

The Windows Internal Database is for any of the following:
  • Active Directory Rights Management Services (AD RMS)
  • Windows Server Update Services (WSUS)
  • Windows System Resource Manager
 In our scenario WSUS is in play on the server.  This never even occurred to us as WSUS usually just sits and runs through the motions at our remote sites.  Lessons learned BUT I will report back and update if we notice that the 2GB limit is not enough for WSUS to function as well as it was previously.

I ran this query against our IT team:












Sorry, terrible joke!

Give me a shout if you have any queries!

Comments

Popular posts from this blog

Add Multiple Alias Email Addresses to Exchange Online/Office 365 Mailbox

WHM/cPanel/Exim Mail Server // Relaying email for specific domain(s) or email address to SMTP Smart Host or remote SMTP server

Re-instating "Send As" privilege Windows 2003 Server // GOOD ForEnterprise