1

How to view Windows Server 2012 Datacenter non-paged pool maximum on a production server?

As the server is a production server, I would not want to install anything on it.

I have 7 GB physical and non-paged pool usage seems to be around 50 MB

Edit: I have a production server that just ran out of virtual memory in the middle of the night with no users online: Windows successfully diagnosed a low virtual memory condition. The following programs consumed the most virtual memory: sqlservr.exe (1392) consumed 2162122752 bytes, w3wp.exe (8376) consumed 831188992 bytes, and svchost.exe (912) consumed 164548608 bytes.

I first thought I had a memory leak and thought that I would like to know whether 50MB of non-paged pool memory in my system is a lot or not.Non-paged pool maximum is calculated at startup and is not viewable with Task manager or Performance Monitor. The only way that I know that would allow me to view non paged pool maximum involves installing other components such as Windbg. Hence the question.

The actual problem that I am trying to solve is "Why did my production server run out of virtual memory in the middle of night during a weekend with practically no load at all. I thought that a high value of non-paged memory utilized would be a good indication of a memory leak.

Pitchmatt
  • 123
  • 1
  • 5
  • Are you manually setting the size of the pagefile? – joeqwerty Oct 12 '14 at 18:22
  • The pagefile is at default setting. I reasoned that if the system runs out of memory with very low load, the memory usage must have been accumulating over hours or longer – Pitchmatt Oct 12 '14 at 18:32
  • Just to follow up on this. The actual reason for running out of memory was that Windows Azure Backup hung repeatedly and left a powershell executable for each time it tried to run or repeat a failed run. – Pitchmatt Nov 20 '14 at 07:18

1 Answers1

3

How to view Windows Server 2012 Datacenter non-paged pool maximum on a production server?

You need debugging tools on the server, or you need to take a memory dump from the server to analyze on another system. (Use the !vm command in the debugger.)

64bit editions of Windows (such as Server 2012,) don't have the draconian non-paged pool limitation that 32-bit editions have. The theoretical limit of non-paged pool on 64-bit Windows is going to be somewhere around the size of physical RAM installed on the machine (or a little less. So, several gigabytes.) The easiest way to see this for yourself is to use Process Explorer and view the Memory tab in System Information. It uses kernel symbols to tease out the pool limits. I know you said you can't install anything, but you have to install some basic debugging tools if you want to see pool limits.

non-paged pool usage seems to be around 50 MB

Sounds perfectly normal. Maybe even a little low. Totally depends on things like your hardware configuration, what drivers you have installed, etc.

The actual problem that I am trying to solve is "Why did my production server run out of virtual memory in the middle of night during a weekend with practically no load at all.

Well I'll give you a hint and tell you that it's SQL. When you have a computer with SQL Server installed on it, and you have a question of "where's my memory?" on that system, the answer is always SQL Server. Remember to set memory limits on SQL Server, or it will happily hog all of it.

But there are so many tools out there if you want a better forensic analysis. Windows Performance Toolkit (formerly Xperf) is your friend.

Ryan Ries
  • 55,481
  • 10
  • 142
  • 199
  • I did think that the limit for non-paged pool was much lower so thanks for clarifying this. Ok perhaps not a memory leak then. – Pitchmatt Oct 13 '14 at 08:17