服务器无法分配系统页面缓冲池中的内存怎么办

发布时间:2021-12-14 15:43:55 作者:柒染
来源:亿速云 阅读:122

服务器无法分配系统页面缓冲池中的内存怎么办,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

症状信息:
当服务器的负载很重时,服务器服务可能会在系统事件日志中重复记录以下错误,指示服务器的页面缓冲池内存不足:

来源 - SRV
类型 - 错误
事件 ID - 2020
Description -

服务器无法通过系统页面共享区来进行分配,因为共享区当前是空的。
数据 -
0000: 00040000 00540001 00000000 c00007e4
0010: 00000000 c000009a 00000000 00000000
0020: 00000000 00000000 0000000b

问题原因:
有几种因素可能会耗尽页面缓冲池内存的供应。启用池标记并以不同的时间间隔拍摄池快照可以帮助您了解哪个驱动程序正在使用页面缓冲池内存。如果池快照指出 MmSt 标签(Mm 区域对象原型 PTE)使用的池内存最多,并且页面缓冲池内存已耗尽,或者系统在记录出错事件 2020,则很可能是因为服务器上打开了大量的文件。默认情况下,当系统达到总页面缓冲池大小的 80% 时,内存管理器会设法修整分配的页面缓冲池内存。根据系统配置,计算机上可能的最大页面缓冲池内存可以是 343MB,而此数量的 80% 就是 274MB。如果内存管理器的修整速度跟不上需求,就可能发生本文“症状”一节中列出的事件。通过优化内存管理器,使它在更早的时间(比如当使用的页面缓冲池内存达到 60% 时)开始修整过程,在突发的高峰使用期间就可以满足页面缓冲池的需求,从而避免出现页面缓冲池内存不足的情况。

解决方案:
 

警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能导致严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证您可以解决这些问题。修改注册表需要您自担风险。  
以下优化建议在减轻此问题方面很有帮助:

  1. 启动注册表编辑器 (Regedt32.exe)。

  2. 在注册表中找到并单击以下注册表项:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management

  3. 在“编辑”菜单上,单击“添加数值”,然后添加以下注册表值:

    数值名称:     PoolUsageMaximum    
    数据类型:REG_DWORD    
    基数:十进制    
    数值数据:60

    将该值设置为 60 可以通知内存管理器在达到 PagedPoolMax 的 60% 而不是默认设置 80% 时开始修整过程。如果 60% 的阈值不足以处理活动中的高峰,请将此设置减小到 50% 或 40%。

    数值名称:     PagedPoolSize    
    数据类型:REG_DWORD    
    基数:十六进制    
    数值数据:0xFFFFFFFF

    将 PagedPoolSize 设置为 0xFFFFFFFF 可为计算机分配最大的页面缓冲池以取代其他资源。

  4. 退出注册表编辑器。

  5. 重新启动服务器,以使更改生效。

关于服务器无法分配系统页面缓冲池中的内存怎么办问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

推荐阅读:
  1. golang的内存分配
  2. oracle DBA反映ODA中的虚拟机无法分配内存

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

服务器

上一篇:VMware ESXi5.5主机无法挂载RHEL6.5 存储该怎么处理

下一篇:Spring Boot + Zookeeper + Dubbo + Seata 整合后无法启动jar包怎么办

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》