代码之家  ›  专栏  ›  技术社区  ›  Paul Stephenson

Windows Server 2003 SP2是否说明了免费系统页表项的真实情况?

  •  2
  • Paul Stephenson  · 技术社区  · 16 年前

    错误1450( ERROR_NO_SYSTEM_RESOURCES

    自由系统页表项 快用完了。我们在这些机器中有16GB的RAM,并使用 /3GB 操作系统切换,将Windows内核压缩到1GB,并允许我们的进程访问3GB的地址空间。这大大减少了空闲系统页表条目的总数,因此,结合我们大量使用MapViewOfFile()的情况,内核页表条目即将用尽可能就不足为奇了。

    当我们的应用程序启动时不会下降

    有一篇很有前途的知识库文章, The Performance tool does not accurately show the available Free System Page Table entries in Windows Server 2003

    更新: 我查过了!sysptes位于windbg(调试内核)中,该值与性能计数器匹配,约为36000。我想这很可能意味着有那么多的免费页面表条目和窗口 说实话。这确实留下了一个问题:如果PTE没有用完,为什么我们会收到1450个错误。

    然而 ,我们将这些服务器上的操作系统升级到64位Windows。这允许现有的32位应用程序(无需重新编译)访问完整的4GB虚拟地址空间,并允许包含这些讨厌的页表条目的内核内存区域也可以任意大。我想从那以后我们再也没有出现过1450错误。

    3 回复  |  直到 12 年前
        1
  •  1
  •   Adam Mitz    16 年前

    能否尝试使用windbg命令“!sysptes”获取系统PTE信息?我不确定是否可以通过实时内核调试来完成这项工作,您可能需要获得内存转储。

        2
  •  0
  •   MSalters    16 年前

    ERROR_NO_SYSTEM_RESOURCES 是由 只有 通过耗尽可用的系统页面表项?据我所知,此类通用错误代码用于多种资源类型。事实上,谷歌的第一次点击表明,文件缓存内存不足也可能导致它。(XP错误上的KB,该错误触发了此错误模式)。

    在你的情况下,我会检查“句柄计数”。另一个可能的问题是地址空间碎片。如果要创建1GB文件映射视图,则需要1GB的可用地址空间,并且必须是连续的。如果映射1GB文件、800MB文件和1GB文件,请关闭800MB文件并打开900MB文件,900MB文件可能无法放入留下的孔中。

        3
  •  0
  •   user102015    15 年前

    MS有 两种方式 允许32位操作系统“处理”具有4 GB或更多RAM的硬件。

    选项1:是您在Boot.ini中对/3GB开关所做的操作。

    备选方案1利弊:

    (反对意见) 此选项从正常的2GB内核区域中抽取1GB,因此使操作系统难以满足分页池分配和内核堆栈分配的要求。因此,人们可能会认为使用/3GB开关将有助于他们的工作,但实际上,这一选择正在慢慢地将32位Windows操作系统推向死亡。

    但是,这给了我的应用3GB。。。。错误(因此这是一个缺点)问题在于,只有从供应商处重新编译的“/3GB交换机感知”应用程序才能真正使用额外的1GB。因此,整个/3GB交换机的使用对每个人来说都是一个非常糟糕的J.O.K.E。

    http://blogs.technet.com/askperf/archive/2007/03/23/memory-management-demystifying-3gb.aspx

    选项2:使用Boot.ini中的/PAE开关。

    备选方案2的利弊:

    在我的世界里,我有一个庞大的基于Java的IBM产品。运行“应用程序”的服务器有16 GB的RAM。我只需添加/PAE开关,就可以看到(多亏了sysinternals Process Explorer),应用程序分页请求从每秒200 KB增加到每秒4 MB。

    问题: “为什么”?

    答复:

    问题: “应用程序是否知道它完全在RAM中运行?

    否-它的运行方式与以前的运行方式相同,“认为”它自身的一部分作为“工作集”内存存在于RAM中,其余的应用程序内存需求进入Windows页面文件。

    是的,这是很好的翻转。

    请注意:微软在告诉任何人伟大的Windows操作系统选项方面做得很差。嗯

    尝试并向stackoverflow报告。。。。