Solved

SQL Server 2008 Memory Consumption

Posted on 2011-09-19
13
733 Views
Last Modified: 2012-05-12
I have a 64-bit Windows Server 2008 R2 Standard O/S, installed as a virtual platform.  The O/S reports that it has 12Gb of RAM installed - I don't know how much RAM the physical box has available to it.

The platform is used as a dedicated db server, running Microsoft SQL Server 2008 R2.

The db hosts 2x databases - a test db and a prod db, both for the same application.

The same application is also running on a separate db server, which is not virtualized.  That server is running 64-bit Windows Server 2003 R2 Standard editition, SP 2.  That box has 8Gb of RAM installed and is running a 64-bit version of Microsoft SQL Server 2005.  Again, its a dedicated db server and runs a PROD and TEST instance of the same db.

The problem that I have is that the 2008 platform needs to be re-started at regular intervals because it consumes all the memory - literally within a few days.  The 2005 platform hasn't been rebooted in years and consistently reports that approximately 8.5GB is being consumed.  So I don't believe its the application which is consuming the memory - indeed, no additional software has been installed on either db server.  In both cases, it is just the O/S + SQL Server.

When I re-start the MS SQL Server service on the 2008 box, the memory reduces from about 11.7Gb down to about 1.5Gb but as I say, within a few days its back up to 11.5+ GB.

When it closes in on the 12Gb limit, the box becomes unresponsive via remote desktop and starts to throw error message in SQL work sheets.

One issue which may or may not be related.  On the 2005 platform, I have a maintenance plan which does a daily full backup & backs up the transaction log every hour.  This works fine on the 2005 box but is also set up on the 2008 and has never worked.

Help...?
0
Comment
Question by:LogistixSW
  • 7
  • 3
  • 3
13 Comments
 
LVL 13

Accepted Solution

by:
dwkor earned 250 total points
ID: 36560709
This is completely normal (that SQL Server tries to consume all memory). But the fact that box becomes unresponsive is strange. What errors do you have in the log? Do you use external stored procedures and/or open xml? Is there also the possibility that memory is overcommitted on the host?

One thing you can probably do as the first step - limit Max server memory in server/memory configuration (server properties). Try to find what setting works best giving as much memory to SQL as possible
0
 

Author Comment

by:LogistixSW
ID: 36560793
Thanks for the quick response.

All the memory settings should be  the defaults - I haven't purposefully changed them.

So on the General tab, Memory is showing as 12288(MB)

On the Memory tab, The configured values radio button is checked and:

"Use AWE to allocate memory" is not ticked.
Minimum Server Memory = 0
Maximum Server Memory = 10240
Index Creation Memory = 0
Minimum memory per query = 1024 KB


On the Processors tab (Configured values):

It has 4x processors (CPU0 through to CPU3).  
Maximum work threads: 0
Boost SQL Server priority: Not ticked


Does this help at all?

Jaime
0
 
LVL 13

Expert Comment

by:dwkor
ID: 36561210
Well, it's pretty straightforward configuration - everything should work fine. But again, there are a few factors that we don't know yet. That max server memory does not apply to a few different things that can make real memory usage higher than specified. You can try to lower it a little bit.

In any case, even if your server is under memory pressure, you should see warning messages in the log and performance degradation - system should not become unresponsive. Is there anything specific in sql server log and/or event viewer that can help to pinpoint issues? What exactly are the error messages you were talking about before.

Another big question mark is host memory configuration. You can see some "interesting" things if memory is over-committed
0
Is Your AD Toolbox Looking More Like a Toybox?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

 

Author Comment

by:LogistixSW
ID: 36561340
OK, I've lowered the maximum memory from 10240 --> 10000

Will wait for problems to start happening (assuming that they continue) and will feed back information from logs, SQL worksheets etc in due course

Thanks
0
 
LVL 13

Expert Comment

by:dwkor
ID: 36561472
I'd start with something smaller - perhaps 8000-9000MB and rather increase it later if system works stable.
0
 
LVL 10

Expert Comment

by:sqlservr
ID: 36565196
please check the available mbytes also ,
perfmon-> add counter-> memory-> available MBytes

sql server 64bit is a bad consumer of memory, if you check it by using
dbcc memorystatus
you can see the max memory occupied is SQL Server BUFFer manager
min and max memory  u keep is only to buffer manager.
0
 

Author Comment

by:LogistixSW
ID: 36565683
See attached, this is what Perfmon reports
Capture.JPG
0
 

Author Comment

by:LogistixSW
ID: 36565690
These are the results from dbcc memorystatus
dbcc-memorystatus-20Sep2011.rpt
0
 
LVL 10

Expert Comment

by:sqlservr
ID: 36565732
Column1      Column2      Column3
VM Reserved                              12615680            
VM Committed                             10505984            
Locked Pages Allocated                   0            
SM Reserved                              0            
SM Committed                             0            MEMORYCLERK_SQLBUFFERPOOL (node 0)       KB
SinglePage Allocator                     0            
MultiPage Allocator                      400            


hi server is heathy
just open server properties-> memory-> max memory of it,
if you  use reporting services-> then leave 2 GB for reportimg
1.5 GB for Operating system
and the rest to sql server,

s
0
 
LVL 10

Assisted Solution

by:sqlservr
sqlservr earned 250 total points
ID: 36565743
12 GB of memory is occupied by SQL Buffer Manger.

when you set the max memory option in SQLserver,
it is that you are placing the cap for SQL Server buffer manager,not the total sqlservr.exe application

you can confidently set the memory cap,it does not kills server performance
0
 

Author Comment

by:LogistixSW
ID: 36565789
OK, thanks for the vote of confidence! :-)

No, we don't use reporting services.

can you offer any help as to how the maintenance plans aren't being executed as expected (see final paragraph on the intiial post)

Thanks
0
 

Author Comment

by:LogistixSW
ID: 37037295
will log the maintenance plans question separately to close this question
0
 

Author Closing Comment

by:LogistixSW
ID: 37037305
thanks for your help guys
0

Featured Post

Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
point in time restore in SQL server 26 43
Extend AD Schema to 2008 R2 after domain upgrade. 5 48
Configuring DNS Round Robin in Windows DNS server ? 8 69
sql query 5 44
In this article I will describe the Backup & Restore method as one possible migration process and I will add the extra tasks needed for an upgrade when and where is applied so it will cover all.
This article explains how to reset the password of the sa account on a Microsoft SQL Server.  The steps in this article work in SQL 2005, 2008, 2008 R2, 2012, 2014 and 2016.
This tutorial will show how to push an installation of Backup Exec to an additional server in both 2012 and 2014 versions of the software. Click on the Backup Exec button in the upper left corner. From here, select Installation and Licensing, then I…
This tutorial will give a an overview on how to deploy remote agents in Backup Exec 2012 to new servers. Click on the Backup Exec button in the upper left corner. From here, are global settings for the application such as connecting to a remote Back…

749 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question