之前网吧有反馈过电脑使用一段时候后,一定会出现物理内存居高不下的情况,具体出现的时候不一致(2小时到5小时)。今天我和同事一起还原了现场。刚开机时的内存占用:易游环境下出现内存居高不下后的占用情况:游戏 ...
之前网吧有反馈过电脑使用一段时候后,一定会出现物理内存居高不下的情况,具体出现的时候不一致(2小时到5小时)。今天我和同事一起还原了现场。 刚开机时的内存占用: 易游环境下出现内存居高不下后的占用情况:游戏时长3小时 顺网环境下出现内存居高不下后的占用情况:游戏时长40分钟 通过findstr命令 我们查找一下内存占用最高的2个驱动到底是谁的 其中排行第一的是易游的本地内存回写的驱动 排名第二的是 FMfn – fltmgr.sys – NAME_CACHE_NODE structure 这个驱动是做什么的呢,通过百度以及bing搜索之后可以了解到,这个驱动是微软自身的一个文件系统筛选的管理器,它通过提供开放式接口让其他开发者可以把自己写的minifilter 驱动与它对接来完成自己的驱动所要完成的事情,例如依托于它的接口来加载自己写的驱动用于保护自己的程序或者对自己的程序以及操作系统进行一些读写操作。 为什么这个系统驱动会导致内存不断攀高而不释放呢,我们继续排查 我们在微软的bing上找到这样一篇文章 大致意思就是这个开发者自己写的一个minifilter的驱动有BUG 导致了系统会出现内存泄露的情况。 接着我们通过工具我们查到了在内核的文件系统接口中有一个非常可疑的驱动加载 Kiminif.sys 毫无疑问的这个就是一个开发者自写的minifilter驱动
通过百度我们查找了一下这个驱动文件的系信息,先发这个驱动是某某通下发的 由此我们测试将某某通的这个驱动程序进行屏蔽,这时候我们再来看玩游戏三小时左右的内存使用状况 此时已经可以确定是某某通自身的Kiminif.sys 存在BUG导致了内存泄露。临时可通过屏蔽某某通的Kiminif.sys 驱动来解决该问题。 目前我们已经反馈给某某通,等待某某通修复此BUG。 搜索 复制 |