Windows 2003 R2 32位terminal服务器上的不稳定性问题

我们遇到了一些Windows 2003 32位TS上的不稳定问题。

经过大量的谷歌search,我的怀疑是,它是用完页面表项(PTE的)。

从我能收集到的信息来看,这是在Windows 32位服务器上使用/ 3gb开关时遇到的一个问题,而使用TS'则可轻松达到极限。

你怎么能证实这是发生了什么? 我没有经验与perfmon和有限的经验,与进程资源pipe理器,我真的不知道我在找什么。

更多信息:任何时候 ,任务pipe理器进程列表都是空的,当这种情况发生时,内存计数器也是空白的。 在这种情况下,服务器通常只有大约65个用户,但他们运行的是MSO和不同的会计软件。 其中一些写得相当糟糕,臃肿。 每个用户的公共内存使用量为200-600 MB,但是我们的服务器永远不会用完可用内存。 一些打印机安装在服务器上,有时甚至可以达到20台。几年前,这些服务器已经运行平稳,有70-80个用户,但是由于它们似乎稳定下来,所以已经缩小了。

对于频繁使用的terminal服务器,Windows Server 2003 x86内核内存默认情况下严重未configuration。

要查看正在运行的系统上的实际使用中的值,可以在View> System Information下使用SysInternal的Process Explorer。 如果系统configuration为使用最大数量的分页池和非分页池,分页限制为512 MB,非分页限制为256 MB。

在这里输入图像说明

为了显示这个级别的细节,必须在选项>configuration符号下载入正确的符号:

在这里输入图像说明

如果分页物理页面或非分页页面接近极限,系统将不稳定。 configuration这些最大限制的registry值位于:

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management] "PagedPoolSize"=dword:FFFFFFFF "SystemPages"=dword:FFFFFFFF 

值得注意的是,拥有大量的物理内存可能没有什么帮助,因为x86窗口只能使用less量内核内存空间,并且不能超出极限值。 (x64内核的内存限制要less得多)。 限制是在系统启动时根据可用内存和registry设置dynamic计算的。

您可以通过以下Windowsdebugging器命令获得有关使用内核内存的更多详细信息:

!vm – 显示类似于进程pipe理器内核内存限制的信息。
! poolused n ! poolused n – 显示有关分页/非分页池使用情况的信息。 如果驱动程序有内存泄漏消耗过多的内核内存,这有时可能会有所帮助。

!poolused命令
http://msdn.microsoft.com/en-us/library/windows/hardware/ff564700%28v=vs.85%29.aspx

!vm命令
http://msdn.microsoft.com/en-us/library/windows/hardware/ff565602%28v=vs.85%29.aspx

在32位TS上,70到80个用户对我来说似乎很重要。 我们的规划数量一直是50到65个用户。 服务器上有多less内存?

在TS上使用/ 3GB会导致性能和稳定性问题。 我亲眼见过 它始于无法加载用户configuration文件,并从那里迅速升级。 我的build议是删除/ 3GB开关,看看对性能和稳定性有什么影响。

您可以在我的文章Windows x64 – 所有相同但非常不同的,第2部分:内核内存,/ 3GB,PTE,(非)分页池中find如何确定内核内存使用情况的说明。

简而言之,通过将WinDbg与LiveKD结合使用,您可以与本地计算机build立实时debugging会话。 从那里很容易查询免费的PTE,使用情况和(非)分页池的最大值。