关于Services.exe开机CPU内存使用暴增解决方案

      这两天系统(Windows Server 2003 SP2)开机,发现Services.exe进程CPU使用率暴增并且伴随内存狂耗,内存和虚拟内存可以在10分钟之内耗尽。我3G内存呀,外加2G虚拟内存。但诡异的是待内存耗尽后,Services.exe有突然释放内存,回到正常状态……

      但开机过程实在太痛苦了,还是早点把这问题解决了比较好。Services.exe属于系统级进程,只有Event Log服务和即插即用服务使用该进程。问题范围很小了,挨个排除呗。

      先扫用NOD32查杀一遍病毒,未发现有毒,后清空了一大堆的系统日志,重启问题依旧;又关闭了Event Log服务,超慢速重启后问题依旧;打开服务,看看隐藏设备,其中并没有感叹号的即插即用设备呀?本来貌似简单的问题陷入僵局。

      没招了,下载微软的工具套装SysinternalsSuite(该套装可在微软官网免费下载),用其中的autoruns收拾收拾启动加载项,但也没发现可疑启动加载项。重启,在Services.exe狂耗内存时打开procexp和procemon监控这个让人郁闷的Services。翻遍加载的DLL,没发现有啥可疑的,终于在procemon的监控中发现Serviece居然在疯狂读写WINDOWS\LastGood.tmp\INF\oem32.inf和WINDOWS\LastGood.tmp\INF\oem32.pnf文件。好奇地打开该路径看看,发现oem32.inf和pnf文件均为0KB。LastGood.tmp是安全模式的最后一次正确配置生成的文件夹,但这个oem32驱动信息是咋回事呢?找了下WINDOWS\inf文件夹,其中并没有oem32.inf,只有oem31。猜测一下,估计是某个软件正准备安装新驱动时驱动文件损坏了,导致这个结果。用unlocker解锁LastGood.tmp文件夹,CPU和内存使用率瞬间降为正常值了。重启后的services.exe狂耗内存和CPU的问题也解决了!

      总结,针对这类问题应该先排除病毒问题,在按照该进程特性缩小问题排查范围,如果问题还未解决,就要靠工具辅助分析了。本次分析用到的工具有:Autoruns、Process Explorer、Process Monitor、unlocker,均免费!问题解决方案同样适用于XP系统。

posted @ 2009-09-20 22:45  紫红的泪  阅读(24149)  评论(2编辑  收藏  举报