探索 svchost/nsi 内存泄漏,并提供数据

探索 svchost/nsi 内存泄漏,并提供数据

svchost尤其nsi是多年来一直与内存泄漏有关,谷歌搜索有很多结果(但解决方案很少)。相关问题相关答案过去曾多次在超级用户上被问到,但我所看到的都是人们问如何确定哪个进程包含泄漏,如果我已经知道这一点,这没什么帮助。

我提出这个问题是因为尽管有人声称这个或那个解决方案解决了这个问题,但问题似乎仍然存在,也想报告我自己的调查结果,以防它有帮助,并看看我还能如何深入研究这个问题。

有建议称,可能解决该问题的是应用 KB 2950358(抱歉,由于缺少代表而无法链接),但安装程序只是说此更新不适用于该系统。

机器、操作系统和软件:Win7 Pro x64、8 GB 内存,配备 nVidia GTX 580 显卡(nVidia 驱动程序,372.54,发布日期为 8 月 15 日,撰写本文时距今已有 15 天)。几乎始终在运行的进程包括 Spotify、Chrome(当前版本为 v52.0.2743.116)、Skype(当前版本为 7.26.0.101)以及一些 Cygwin和mintty进程。Internet Explorer 是bashssh不是安装(除了无法删除的部分)。常用的浏览器插件,如 yt 的 flash 等。没有什么特别不寻常的,尽管其中一些插件大量使用网络,理论上如果 KB 2847346 之类的东西是可信的,可能会受到影响。已应用所有 Windows 更新,包括最新的可选汇总更新。

省略一些中间步骤,我将 分离nsi成自己的svchost,重新启动,然后每秒记录 的输出tasklist,包括进程的 PIDnsisvchost曾经nsi属于的 。 结果绘制如下;果然,后者基本持平,但nsi以稳定(如果不是增加的话)的速度增长。

同时,我曾经procmon记录过 进行的系统调用nsi,但除了 6 个事件外,其余都是线程创建和线程退出事件,这没什么帮助。无论是什么原因导致的,都不会导致nsi进行自己的系统调用。

在我分离之前nsi,我进行了近四天的类似跟踪,该svchost实例从 24 MB 开始,在我停止它之前持续增长到大约 2150 MB,变化率显然随着时间的推移而增加。过去,我曾看到有问题的svchost进程占用了 6 GB 以上,但随着运行procmon,这就是我开始耗尽内存的点。有几次,一些内存被释放,但没有分配的那么多。如果有人想看,我可以稍后链接此图。

我也对其进行了监控,procmon并可以提供事件的细目,但这些事件可能不是很有趣,因为已经确定nsi是哪个出了问题,而且没有任何事件特别有趣。

是否有任何工具可以跟踪哪些进程正在发出请求某项特定服务?

鉴于显然相关的 KB 修补程序不适用,我的下一步该怎么做?

相关内容