[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[备忘]内存暴涨的罪魁祸首:Zombie postgres.exe processes 僵尸进程

上一篇:[备忘]RamMap软件的关键词意思
下一篇:[备忘]Mapper动态数据源,切换不正确的问题

添加日期:2022/1/17 23:44:22 快速返回   返回列表 阅读546次
现象:
8G内存,过一阵,就内存99%,但是进程里只有4G多。
程序无法使用,只能重启电脑。

分析过程:
(1)首先,拿神器RamMap.exe看看,发现
程序占用3G多,
Page Table占用1G,还一直在慢慢涨
NonPaged Pool占用900M,比较稳定

(2)搜了半天Page Table,没啥进展。
后来点开进程列表页,发现postgres.exe怎么这么多,下拉框都拉不完
目测得有2万多个。
进数据库,看连接数,才几十个,很正常啊。
系统管理器,看postgres.exe也是几十个。

(3)pg处理新连接时,就是fock一个postgres.exe进程出来,处理后进程就应该关闭了。
郁闷半天,后来搜得一文,说RamMap.exe的进程列表是包括僵尸进程的。
这些进程已经结束了,但是句柄没有释放。
每个postgres.exe僵尸进程占用4K内存+16K的pageTable=20KB
20000*20=400000=400MB,
看来不止两万个。

(4)为什么会僵尸呢,搜了半天,貌似是某些驱动的问题。
有的是安装Advantage Database Server v7.1,带来的aksdf.sys和 hardlock.sys有问题。
有的是Logitech webcam driver
有的是Lenovo RapidBoot Shield.
笨方法就是,挨个卸载,然后通过RamMap.exe看是否有僵尸进程产生。
https://social.technet.microsoft.com/Forums/windowsserver/en-US/0b610346-fc53-4b39-8cfd-9737d265c3f4/physical-memory-leak-by-terminated-processes?forum=winservergen

(5)怎么解决?重装大法。


 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved