Windows Server 2012非分页池最大值

如何在生产服务器上查看Windows Server 2012 Datacenter非分页池最大值?

由于服务器是生产服务器,我不想在其上安装任何东西。

我有7 GB的物理和非分页池使用率似乎是50 MB左右

编辑:我有一个生产服务器,只是在半夜用完虚拟内存,没有用户在线:Windows成功诊断出虚拟内存不足的情况。 以下程序消耗的虚拟内存最多:sqlservr.exe(1392)消耗了2162122752个字节,w3wp.exe(8376)消耗了831188992个字节,而svchost.exe(912)消耗了164548608个字节。

我第一次以为我有一个内存泄漏,并认为我想知道在我的系统中是否有50MB的非页面缓冲池内存是否很多。非页面缓冲池的最大值是在启动时计算的,并且不能在任务pipe理器中查看或性能监视器。 我知道这将允许我查看非分页池最大值的唯一方法涉及安装其他组件,如Windbg。 因此,这个问题。

我试图解决的实际问题是“为什么我的生产服务器在周末几乎没有任何负载的情况下在深夜里耗尽虚拟内存,我认为使用的非分页内存的高价值将是一个内存泄漏的好迹象。

如何在生产服务器上查看Windows Server 2012 Datacenter非分页池最大值?

在服务器上需要debugging工具,或者需要从服务器获取内存转储以在另一个系统上进行分析。 (在debugging器中使用!vm命令。)

Windows的64位版本(如Server 2012)没有32位版本的恶意非分页池限制。 64位Windows上的非页面缓冲池的理论极限将会在机器上安装的物理内存的大小(或者稍微小一点,所以也就是几个千兆字节)。最简单的方法是使用Process Explorer并查看系统信息中的内存选项卡。 它使用内核符号来梳理池的限制。 我知道你说过你不能安装任何东西,但是如果你想看到池限制,你必须安装一些基本的debugging工具。

非分页池使用率似乎在50 MB左右

听起来很正常。 也许有点低。 完全取决于你的硬件configuration,你已经安装了哪些驱动程序等。

我试图解决的实际问题是“为什么我的生产服务器在周末几乎没有任何负载的情况下在深夜里耗尽虚拟内存。

那么我会给你一个提示,告诉你这是SQL。 当你有一台装有SQL Server的计算机时,你有一个“我的记忆在哪里”的问题。 在那个系统上,答案总是SQL Server。 请记住在SQL Server上设置内存限制,否则它会高兴地占用它。

但是如果你想要一个更好的取证分析,那里有很多工具。 Windows性能工具包(以前称为Xperf)是你的朋友。