情况是这样的,我管理的一个服务器,总是报“系统资源不足,无法完成请求的服务”
服务器基本配置: 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直播授课