Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

EDIT Sorry forgot details, I'm running SQL Server 2008 R2 16GB of RAM

My min/max memory allocation is set to 13 GB. Running perfmon - SQL Server:Memory Manager. Target Server Memory and Total Server Memory confirms this. The ram counter in Task Manager is at 15 GB (assuming 2GB is used for other applications)

What I don't understand is why the process sqlservr.exe is only showing 82KB usage in task manager? Further to that, all of memory consumed by the processes running on my server from Task Manager doesn't add up to 15 GB either.

So what gives

share|improve this question

2 Answers 2

up vote 1 down vote accepted

115982 is a very similar question

Is this a 64bit server - do you have the lock pages in memory local policy enabled?

the most likely reason is that this SQL Server 64bit instance is using “locked pages” as I’ve described in an earlier question. Notice the name on the Task Manager column is called Memory (Private Working Set). Remember we also said that if SQL Server 64bit instances use “locked pages” this memory would not be part of the working set (because remember AWE APIs are used on 64bit to “lock” pages and that memory is not part of the working set). So since the locked pages are not part of the working set, they won’t appear in this column in Task Manager. On the Task Manager for Windows Server 2003, this column is called “Mem Usage” but it also reflects the working set of the process.

Here is an article that explains it in depth

You can also view the counters in SQL

SELECT
    object_name
   ,Counter_name
   ,cntr_value
   ,ROUND(( cntr_value * 8192.0 ) / 1048576, 0) AS cntr_value_MB
FROM
    sys.dm_os_performance_counters
WHERE
    object_Name LIKE '%Buffer Manager%'
    AND RTRIM(counter_name) IN ( 'Free pages', 'Total pages',
                                 'Database pages' ) 
UNION SELECT
    object_name
   ,Counter_name
   ,cntr_value
   ,ROUND(( cntr_value / 1024 ), 0) AS cntr_value_MB
FROM
    sys.dm_os_performance_counters
WHERE
    counter_name IN ( 'Target Server Memory (KB)',
                      'Total Server Memory (KB)' )
share|improve this answer

What version of SQL Server are you using? Is is x64 or x86?

I'm guessing that it is an x86 machine using AWE. When AWE is in use Task Manager doesn't report the correct amount of memory in use. This is normal, use the perfmon counter to see how much memory is in use.

share|improve this answer
1  
Can't be an x86 system, it's Windows Server 2008 R2. –  Massimo Feb 23 '10 at 20:42

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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