如何检查 Win 2K3 服务器上 userva 启动选项的使用情况

如何检查 Win 2K3 服务器上 userva 启动选项的使用情况

我有一些 32 位 Win2K3 服务器正在运行一个应用程序,该应用程序偶尔会由于堆碎片而失败。(进程虚拟字节增长,私有字节不变)我无法访问此应用程序的源代码或构建过程。

图形

我已经修改了启动配置文件在这些服务器之一上添加文件以包括/userva=2560,介于正常操作模式和/3GB选项之间。通常需要数周时间才能达到故障点,但我想立即查看这是否真的有任何影响。

据我了解,此选项将内核限制到剩余的地址空间(1536MB,而不是2048MB),但不会一定根据应用程序的 PE 头中的标志,为应用程序提供额外的地址空间。

如何确定操作系统是否允许在生产中运行的特定应用程序访问 2GB 以上的地址空间?此外,监视系统以确保内核不会缺少地址空间的最佳方法是什么?更一般地说,我应该如何找到此设置的最佳值?

答案1

有两件事,首先你仍然需要/3GB标志根据知识库

其次,既然泄漏速度如此缓慢,何必呢?您应该每个月重新启动一次,或者最多重新启动两次,只是为了应用安全更新。

答案2

内核内存(分页/非分页/缓存)- 您可以使用 Windows 调试器查看它。文件 > 内核调试 > 本地选项卡。“!vm”显示内核内存。重要值是池使用率和最大值:

NonPagedPool 使用情况:10300 (41200 Kb)
NonPagedPool 最大值:65281 (261124 Kb)
PagedPool 使用情况:14531 (58124 Kb)
PagedPool 最大值:134144 (536576 Kb)

您还可以使用 PE Explorer 检查程序的 PE 映像头。 Characteristics 字段确定程序是否可以访问 2 GB 以上的内存。如果没有设置,/3GB 就是浪费。

替代文本

PE 探索器
http://www.pe-explorer.com/

相关内容