首页
社区
课程
招聘
[求助]请大家帮忙会诊Win2003服务器"系统资源不足"问题
发表于: 2014-7-17 13:01 14976

[求助]请大家帮忙会诊Win2003服务器"系统资源不足"问题

2014-7-17 13:01
14976
情况是这样的,我管理的一个服务器,总是报“系统资源不足,无法完成请求的服务”
服务器基本配置: Intel Xeon 双核 24线程处理器,内存16G,系统是Win2003 Server SP2,装了Oracle数据库
为了增加Oracle的可用内存,系统还配置了/3GB /USERENV=2816 这样的参数
这是基本情况~

服务器上有一个程序XXDBService.exe,主要功能是接受从网络传输过来的数据并存入Oracle数据库中

这个程序之前版本跑得还比较正常,但是后来升级到现在这个版本之后,就开始出现问题了...
主要症状是程序存着存着就不往下工作了,然后发现此时的系统进入了一种似乎是濒临崩溃的状态~

当进入这种状态之后,系统就会出现一些奇怪的现象,首先是登录窗口变成这样:

而且即使输入了正确的密码,也无论如何都登录不进去
而正常的样子应该是这样的:


然后,启动很多程序都完全没有反应,但是任务管理器可以启动

一些命令如net share等无法执行,提示错误就是“系统资源不足,无法完成请求的服务”
强制重启系统之后,检查事件管理器,在系统濒临崩溃的状态期间会有这样的一些错误:

像这样

像这样

像这样

像这样

像这样

VNC还会这样:


特征比较明显的是ID 333的事件问题,因为频率实在太高了,我根据关键字在微软官网找到相应的补丁:
http://support.microsoft.com/kb/970054

但是该补丁只是让系统不要以这么高的频率记录日志而已,改成了一天只记一次,并不解决根本问题
官方提示的原因就是“系统的非分页内存或分页缓冲池内存不足”,并提供了修改设置的注册表设置:
http://support.microsoft.com/kb/304101
但是我按要求修改之后,发现还是没什么用~~

出现问题之后,重启服务器,然后短则5~6个小时,或者三天左右,仍然会出现这个问题,头大~~~~
于是接着查呀查呀,发现只要把那个进程XXDBService.exe一结束,系统瞬间就恢复正常了!
那就是说罪魁祸首就是它了!(这就是为什么我在本文开头要介绍这个进程)
这是我之前在另一服务器上截下的该进程在任务管理器中的资源使用图:


大家帮忙看看这个进程的资源使用哪里有不正常的地方~

现在这个问题还是没有解决,极端困扰中~

我想问的几个问题:
1.“系统资源不足,无法完成请求的服务”,这里提示的“系统资源”到底指的是什么资源? 是核心内存? 或者更细一点是未分页内存吗?
2.任务管理器中显示的核心内存数,到底是已用数,还是可用数?
3.为什么XXDBService.exe这个程序(从网络接收数据后存入Oracle数据库)会造成这种结果? 这个程序到底是哪种操作占用了什么资源导致系统进入那样一种状态?
4.为什么结束该进程后这种资源就被释放了? 这是否可以为查找该进程占用的资源类型提供线索?
5.如何彻底解决这个问题? (系统设置应该不存在问题,那么这个程序到底存在哪些问题? 该如何修改?)

恳请路过的各位高人指点一二!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 207
活跃值: (39)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不懂,但是应该是个大问题,帮你顶上去.等待高手。
2014-7-17 15:11
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
帮顶,求大虾。
2014-7-17 15:34
0
雪    币: 60
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
典型的内存泄露.
2014-7-17 16:25
0
雪    币: 60
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
XXDBServices.exe存在内存泄露,
2014-7-17 16:26
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
6
从实际情况来看,长时间运行后这个程序占用的内存也就160M~200M左右,不算很大,说明即使有泄漏也不是明显,而物理内存有16G,那么这点内存使用量应该不足以造成如此严重的后果吧?
2014-7-18 11:57
0
雪    币: 362
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
进程有资源泄漏。
怀疑句柄泄露的可能性大一些。
2014-7-18 12:11
0
雪    币: 382
活跃值: (352)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
8
用"蓝屏键"弄个dump.然后windbg 看一下内核的里面是否有泄露.
2014-7-18 12:28
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
9
我准备用PoolMon试一下
2014-7-18 12:41
0
雪    币: 138
活跃值: (306)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
10
这个机器上装有其他的驱动? 像是非分页内存用完了.跟开了low resource 效果一样.
2014-7-18 13:11
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
11
感觉ProgmBoy和群里nevergone同学的建议,当系统快崩溃时人为制造BSOD抓取dump进行分析
发现是PagedPool用完了:



初步对比原因是网络传输进程版本未升级导致,而非文中提到的XXDBService.exe,它只是调用网络传输进程获取数据而已~ 今天升级了该程序,目前观察中,应该是不会再出问题了

至于为什么之前的版本会造成这个结果,这个还是很难查找原因
上传的附件:
2014-7-20 20:59
0
雪    币: 265
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
顶上去,等大牛
搬个板凳围观
2014-7-23 11:08
0
游客
登录 | 注册 方可回帖
返回
//