Task Manager - Memory Usage Delta is not Changing for sqlservr.exe

  • Why am I seeing the Task Manager statistic "Memory Usage Delta" showing 4GB of memory on my 4GB server. I thought Memory Usage Delta is supposed to show memory changes between Task Manager updates? I'm only seeing this on a server using the /3GB switch and /userva=2950. Not sure if this has anything to do with it.

    Dave

  • First, is this Enterprise edition?

    Second, each app gets 4GB of virtual memory, which is mapped and swapped out to physical memory. I'm not sure what the Delta stat is, but that might explain some of it.

  • Hi Steve,

    We are running Windows Server 2003 SE with SQL Server 2000 EE.  Since the 3GB switch is being used that means user mode processes, such as SQL Server, are assigned 3GB of virtual address space and the OS is assigned 1GB, by default.  Since I am also using /userva=2950, that means I am actually assigning 2.88GB to SQL Server and 1.12 GB to the OS. 

    We're experiencing performance problems, which most likely is due to the application code.  However, while taking another look at memory we decided to check Task Manager's Memory Usage Delta, which displays how much memory was utilized between updates of the Task Manager counters.  The update speed/frequency is either set to HIGH, NORMAL, LOW or PAUSED.  If PAUSED, you control the update speed by refreshing Task Manager.  On all but one of the SQL Servers we checked, Memory Usage Delta will occassionally spike, but eventually be reset to zero when the update frequency is met.  In the case of this particular server, the Memory Delta is always at 4GB, with only a few bytes changing on occassion.  This doesn't appear to be possible since I believe that would mean the read/write cache would be constantly flushed, which is not the case.  I'm wondering if the /3GB switch or /userva causing inaccurate readings for this counter.

    Dave

  • There is a bug in Task Manager (http://support.microsoft.com/kb/269551) that applies to Windows 2000 and 2003, where the amount of memory used by a process is not correctly reported in all cases.

    The workaround is to use the Performance Monitor (Sysmon.exe) to track memory usage and system statistics.

    Also, SQL server can and is paged. For example, if SQL Server max server memory is set to 2048 Mb, task manager will accurately show "Mem Usage" as 1,713,295 for and the remaining 383,857 of the 2Gb is paged.

    To determine the actual memory being used and how much is paged, use the Process Explorer for Windows available at:

    http://www.microsoft.com/technet/sysinternals/ProcessesAndThreads/ProcessExplorer.mspx

    SQL = Scarcely Qualifies as a Language

  • Thanks Carl.  Unfortunately sysmon doesn't have a Memory Usage Delta counter, but I will explore using Process Explorer.

    Dave

Viewing 5 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic. Login to reply