使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

假设您有一个应用程序或运行 Windows Server 2008 R2,Windows 7 中的工具和应用程序或工具,执行下列一项或多项下列任务:

  • 通过使用 ICMP 或 ping.exe 监视另一台服务器

  • 然后停止启动多个短期的进程执行一个作业和过程

  • 由另一个应用程序或脚本然后停止做任何网络活动和进程

在此情况下,您的服务器运行连续几个小时或几天内,您注意到网络存储接口 (NSI) 服务泄漏内存之后。 此外,您还注意到下列症状:

  • 如果您停止监控软件,内存泄漏会停止。

  • 如果停止该应用程序,然后重新启动计算机,NSI 服务中发生的任何内存泄漏。

  • 在某些情况下,如果您禁用然后再启用网络适配器,您注意到 CPU 使用率突然的高峰 NSI 服务。 此外,内存使用量立即来自跌落 1 或 2 千兆字节 (GB) 到 200 或 300 兆字节 (MB)。

在以下任何情况中可能会出现此问题。

情形 1

如果应用程序如 ping.exe 强行停止,则可能未调用IcmpCloseHandle函数。 在这种情况下,NSI 服务可能会检测有客户端可用。 因此,该服务不断发送有关任何 ICMP 消息的通知。 因为客户端不存在,通知列表的数量不断增加。 不清除列表直到 NSI 服务已停止。

若要发送 ping 操作,您必须打开 ICMP 的句柄,并将这些其他的 IP 帮助程序函数以便发送和接收 ICMP 数据:

IcmpCreateFile 函数

ICMPCreateFile 函数

IcmpSendEcho2Ex 函数

应用程序发送 ping 命令之后,它必须调用IcmpCloseHandle 函数来关闭 ICMP 句柄。

情形 2

软件开发人员在创建应用程序来发送和接收的 ICMP 消息使用 IPHlelper Api。 如果只有一个 ICMP 句柄用于为多个客户端,发送的 ICMP 消息,如果这一点做得非常高的速度时收到一条消息,通知 IPHelper API 无法保持速度。 在这种情况下,您注意到 NSI 服务内存继续呈指数级增长。 此外,您发现高 CPU 使用率由 NSI 服务 (nsisvc.dll)。

情形 3

您有一个应用程序或服务,直接或间接使用IP 帮助程序函数。 应用程序停止或被停止,并且它不会退出正常时不进行每个通知注册已取消 (CancelMibChangeNotify2)。在这种情况下,NSI 服务器保留为已停止的进程挂起的注册。如果有多个实例应用程序中断,NSI 服务会有很多延迟登记。为每个注册维护 RPC 异步状态和其他信息。这增加的内存使用情况。通常情况下,这些登记由接口更改或单播 IP 地址更改。如果状态没有改变,仍会维持这些登记。

在注册过程中使用下列通知函数:

许多应用程序不调用 (CancelMibChangeNotify2) 也不会停止的进程的原因是 Microsoft 开发人员网络网站上讨论主题中的NotifyIpInterfaceChange 函数

将调用NotifyIpInterfaceChange函数来注册的更改通知后,这些通知会继续发送,直到接收更改通知或应用程序将停止该应用程序中注销。 如果应用程序停止,系统将自动注销了更改通知任何注册。 我们建议您配置显式停止之前注销了更改通知的应用程序。

为每个注册的通知,请还有些非页面缓冲池 (NPP) 为分配内存NSpc 标记。

原因

发生此问题是因为注册通知进程退出而 NSI 服务从第一个注销。 因此中 NSI, 的注册泄漏会导致内存泄漏中 NSI 服务。另外NPP 泄漏中 NSI 代理上下文标记 NSpc (NSI.dll) 的内存。

解决方案

修补程序信息

受支持的修补程序可从 Microsoft 支持。 然而,此修补程序仅用于解决本文中描述的问题。 此修复程序仅适用于遇到本文中描述的问题的系统。 此修补程序可能会接受进一步的测试。 因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修复程序的下一个软件更新。

如果此修复程序可供下载,则在此知识库文章的顶部会出现“修补程序下载可用”部分。 如果未显示此部分,请与 Microsoft 客户服务和支持部门联系以获取此修复程序。

注意 如果出现其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。 对于不符合此特定的修补程序的其他支持问题和事项将照常收取费用。 有关 Microsoft 客户服务和支持电话号码或创建单独的服务请求的完整列表,请转到下面的 Microsoft 网站:

http://support.microsoft.com/contactus/?ws=support

注意 "提供修补程序下载"窗体显示获取此修复程序的语言。 如果看不到您的语言,则修补程序没有那种语言的版本。

先决条件

若要应用此修补程序,您必须为 Windows 7 或安装 Windows Server 2008 R2 Service Pack 1

重启要求

应用此修补程序后,必须重启计算机。

修补程序替换信息

此修补程序不替换任何以前发布的修补程序。

文件信息

此修补程序的英语(美国)版本将安装具有下表所列属性的文件。 这些文件的日期和时间使用协调世界时 (UTC) 列出。 这些文件在本地计算机上显示的日期和时间是本地时间再加上当前夏令时 (DST) 偏差。 此外,如果对这些文件执行某些操作,日期和时间可能会更改。

Windows 7 和 Windows Server 2008 R2 文件信息和备注

重要说明 Windows 7 修补程序和 Windows Server 2008 R2 修补程序包含在同一程序包中。 不过,“修补程序请求”页在这两个操作系统下均列出了修补程序。 若要请求获得适用于一个或两个操作系统的修补程序包,请选择此页上“Windows 7/Windows Server 2008 R2”下列出的修补程序。 请务必参阅文章中的“适用于”部分,确定每个修补程序实际适用的操作系统。

  • 通过检查下表中显示的文件版本号,可以识别应用于特定产品、 SR_Level (RTM、 SPn) 和服务 (LDR、 GDR) 的分支的文件。

    版本

    产品

    SR_Level

    服务分支

    6.1.760 016xxx

    Windows 7 和 Windows Server 2008 R2

    RTM

    GDR

    6.1.760 1. 22xxx

    Windows 7 and Windows Server 2008 R2

    SP1

    LDR

  • GDR 服务分支包含那些广泛发布以解决广泛分布的至关重要问题的修复。 除了广泛发布的修复程序外,LDR 服务分支还包含其他修补程序。

  • 在"附加文件的 Windows 7 和 Windows Server 2008 R2 的信息"部分中分别列出的清单文件 (.manifest) 和菊花安装的文件 (.mum) 为每个环境。

  • MUM 和 MANIFEST 文件以及关联的安全目录 (.cat) 文件对维护更新组件的状态极其重要。 未列出属性的安全目录文件使用 Microsoft 数字签名进行签名。

对于所有受支持的基于 x86 的 Windows 7 版本

文件名

文件版本

文件大小

日期

时间

平台

Nsi.dll

6.1.7600.16385

8,704

14-Jul-2009

01:16

x86

Nsiproxy.sys

6.1.7600.16385

16,896

13-Jul-2009

23:12

x86

Nsisvc.dll

6.1.7601.22590

20,480

05-Feb-2014

02:03

x86

Winnsi.dll

6.1.7600.16385

16,896

14-Jul-2009

01:16

x86

对于所有受支持的基于 x64 的 Windows 7 和 Windows Server 2008 R2 版本

文件名

文件版本

文件大小

日期

时间

平台

Nsi.dll

6.1.7600.16385

13,824

14-Jul-2009

01:41

x64

Nsiproxy.sys

6.1.7601.22590

24,576

05-Feb-2014

01:15

x64

Nsisvc.dll

6.1.7601.22590

26,624

05-Feb-2014

02:42

x64

Winnsi.dll

6.1.7600.16385

26,112

14-Jul-2009

01:41

x64

Nsi.dll

6.1.7601.22590

8,704

05-Feb-2014

02:03

x86

Winnsi.dll

6.1.7601.22590

16,896

05-Feb-2014

02:04

x86

对于所有受支持的基于 IA-64 的 Windows Server 2008 R2 版本

文件名

文件版本

文件大小

日期

时间

平台

Nsi.dll

6.1.7600.16385

18,944

14-Jul-2009

01:48

IA-64

Nsiproxy.sys

6.1.7601.22590

53,760

05-Feb-2014

00:50

IA-64

Nsisvc.dll

6.1.7601.22590

60,928

05-Feb-2014

01:48

IA-64

Winnsi.dll

6.1.7600.16385

38,912

14-Jul-2009

01:50

IA-64

Nsi.dll

6.1.7601.22590

8,704

05-Feb-2014

02:03

x86

Winnsi.dll

6.1.7601.22590

16,896

05-Feb-2014

02:04

x86

Windows 7 和 Windows Server 2008 R2 的其他文件信息

所有受支持的基于 x86 的 Windows 7 版本的其他文件

文件名

Package_1_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum

文件版本

不适用

文件大小

1,822

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

Package_2_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum

文件版本

不适用

文件大小

1,805

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

Package_3_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum

文件版本

不适用

文件大小

1,807

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

Package_for_kb2847346_rtm~31bf3856ad364e35~x86~~6.1.1.0.mum

文件版本

不适用

文件大小

1,459

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

Package_for_kb2847346_sp1~31bf3856ad364e35~x86~~6.1.1.0.mum

文件版本

不适用

文件大小

1,918

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

X86_dfca12963d5c03edca970b29ad513eb4_31bf3856ad364e35_6.1.7601.22590_none_ff32d7aebbbb6891.manifest

文件版本

不适用

文件大小

699

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

X86_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_749890603f18301d.manifest

文件版本

不适用

文件大小

8,301

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:38

平台

不适用

所有受支持的基于 x64 版本的 Windows 7 和 Windows Server 2008 R2 的其他文件

文件名

Amd64_37e172e525713d1718cb98daea282913_31bf3856ad364e35_6.1.7601.22590_none_9888f3a0165278fe.manifest

文件版本

不适用

文件大小

1,048

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

Amd64_3839818617f8250fd6f59e35da1df9bd_31bf3856ad364e35_6.1.7601.22590_none_8fbf427f98b0d1cb.manifest

文件版本

不适用

文件大小

703

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

Amd64_a9af583825031567fe0548a9c2c728ab_31bf3856ad364e35_6.1.7601.22590_none_59ced916edddc9da.manifest

文件版本

不适用

文件大小

703

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

Amd64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_d0b72be3f775a153.manifest

文件版本

不适用

文件大小

8,305

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:41

平台

不适用

文件名称

Package_1_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum

文件版本

不适用

文件大小

1,832

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

Package_2_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum

文件版本

不适用

文件大小

2,237

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

Package_3_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum

文件版本

不适用

文件大小

2,015

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

Package_4_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum

文件版本

不适用

文件大小

2,036

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

Package_for_kb2847346_rtm~31bf3856ad364e35~amd64~~6.1.1.0.mum

文件版本

不适用

文件大小

1,467

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

Package_for_kb2847346_sp1~31bf3856ad364e35~amd64~~6.1.1.0.mum

文件版本

不适用

文件大小

2,830

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

Wow64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_db0bd6362bd6634e.manifest

文件版本

不适用

文件大小

4,690

日期 (UTC)

05-Feb-2014

时间 (UTC)

02:16

平台

不适用

所有受支持的基于 IA-64 的 Windows Server 2008 R2 版本的其他文件

文件名

Ia64_44d491142723affea686ec2fba3cb4ac_31bf3856ad364e35_6.1.7601.22590_none_dc26e555dbabe437.manifest

文件版本

不适用

文件大小

1,046

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

Ia64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_749a34563f163919.manifest

文件版本

不适用

文件大小

8,303

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

Package_1_for_kb2847346~31bf3856ad364e35~ia64~~6.1.1.0.mum

文件版本

不适用

文件大小

2,029

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

Package_for_kb2847346_sp1~31bf3856ad364e35~ia64~~6.1.1.0.mum

文件版本

不适用

文件大小

1,446

日期 (UTC)

05-Feb-2014

时间 (UTC)

06:35

平台

不适用

文件名称

Wow64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_db0bd6362bd6634e.manifest

文件版本

不适用

文件大小

4,690

日期 (UTC)

05-Feb-2014

时间 (UTC)

02:16

平台

不适用

解决方法

若要变通解决此问题,请根据您的具体情况使用下列解决方法之一。

方案 1 的解决方法

请确保该应用程序,如 ping.exe,不强行停止。 相反,让应用程序正常关机。

另外,升级到 Windows Server 2012。 在 Windows Server 2012 中解决此问题。 此修补程序可防止 NSI 服务正在泄漏内存,而不考虑如何停止应用程序。

方案 2 的解决方法

软件开发人员,应该创建多个 ICMP 句柄发送 ICMP 请求。 如果您必须发送大量的 ICMP 数据包,应使用原始套接字和直接发送和接收的原始套接字上的 ICMP 数据包。 这将使最快的性能。

方案 3 的解决方法

在这种情况下,如果禁用和启用网卡,内存使用量立即减少,但 CPU 使用率出现短高峰。

这是因为当 IP 地址或接口中发生了更改,由内核通知 NSI 服务。 NSI 服务依次尝试通知注册的所有客户端。 当该服务来通知客户端进程不存在时,RPC 会报告错误。 因此,NSI 服务将删除所有已保存为该客户端进程的状态信息。 出现这种情况后,被释放的内存。

在这种情况下,几个几十万通知进行注册。 事件发生后,所有这些无效的客户端的内存被释放。

在 Windows 8 中解决此问题。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×