Applies ToWindows Server 2008 R2 Service Pack 1 Windows 7

徵狀

假設您有應用程式或 Windows Server 2008 R2,Windows 7 中正在執行的工具和應用程式或工具會執行一或多個下列工作:

  • 使用 ICMP 或 ping.exe 監視另一部伺服器

  • 然後停止啟動多個短暫的處理程序來執行工作,以及程序

  • 其他的應用程式或指令碼然後停止任何的網路活動,以及程序

在此情況下,您的伺服器會持續執行數個小時或幾天,則您注意之後網路存放區介面 」 (NSI) 服務會遺漏記憶體。 此外,您會注意到下列的徵狀:

  • 如果您停止監視軟體時,便會停止記憶體流失。

  • 如果您停止應用程式,然後重新啟動電腦時,則會在 「 NSI 」 服務中發生沒有記憶體流失。

  • 在某些情況下,如果您停用,然後啟用 [網路介面卡,您注意到 CPU 使用量突然突然的增加 NSI 服務。 此外,記憶體使用量立即來自降 1 或 2 gb (GB) 以 200 或 300 百萬位元組 (MB)。

這個問題,可能會出現在下列情況。

案例 1

如果應用程式,例如 ping.exe 強制停止,則可能不會呼叫IcmpCloseHandle函式。 在此情況下,NSI 服務可能會偵測沒有用戶端可用。 因此,服務會持續傳送有關任何 ICMP 訊息的通知。 因為用戶端不存在,通知清單不斷增加。 清單不會未取得加以清除,直到 NSI 服務被停止。

若要傳送 ping,您必須開啟 ICMP 控點,然後再使用 [傳送及接收 ICMP 資料 [這些 IP 協助程式函式:

IcmpCreateFile 函式

ICMPCreateFile 函式

IcmpSendEcho2Ex 函式

應用程式傳送 ping 之後,它必須呼叫IcmpCloseHandle 函式,以關閉 [ICMP] 控點。

案例 2

軟體開發人員會建立要傳送和接收 ICMP 訊息,請使用 IPHlelper Api 的應用程式。 如果只有一個 ICMP 控制碼用來傳送 ICMP 訊息以供多個用戶端,而且如果這種做法會非常高的速率,IPHelper API 都要告知收到訊息時,無法維持速度。 在此情況下,您可以注意到的 NSI 服務記憶體會繼續,更是成指數成長。 此外,您會發現的高 CPU 使用率 NSI 服務 (nsisvc.dll)。

狀況 3

您有應用程式或直接或間接使用IP Helper 函式的服務。 應用程式停止或已停止,而且它不會不正常時結束每個告知登錄不是已取消 (CancelMibChangeNotify2)。在此情況下,NSI 伺服器會保持擱置中的註冊,已停止處理程序。如果有許多的應用程式都會執行個體,NSI 服務會有許多延遲登錄。每個註冊保留有 RPC 非同步的狀態和其他資訊。如此會將記憶體使用量。一般而言,因此這些登錄有針對介面變更] 或 [單點傳播 IP 位址變更。如果狀態沒有變更,因此這些登錄會仍會保留。

在註冊程序期間使用下列的告知函式:

NotifyIpInterfaceChange 函式主題會討論的原因,許多應用程式,請不要呼叫 (CancelMibChangeNotify2) 或停止處理序在 Microsoft 開發人員網路網站上。

NotifyIpInterfaceChange函式呼叫來註冊變更通知之後,這些通知會繼續傳送,直到應用程式會移除註冊以接收變更通知 」 或 「 應用程式的停駐點為止。 如果應用程式停止,則系統會自動解除登錄變更通知的任何登錄。 我們建議您設定應用程式明確地取消註冊變更通知的 [之前它就會停止。

您對每個告知的註冊,還會配置一些非分頁集區 (NPP) 記憶體供NSpc 的標記。

原因

之所以發生這個問題,是因為登錄通知處理序結束而不 NSI 服務的第一個解除登錄。 因此,在 NSI 中的註冊遺漏造成記憶體流失 NSI 服務中。此外NPP 遺漏 NSI Proxy 內容標記 NSpc (NSI.dll) 中的記憶體。

解決方案

Hotfix 資訊

使用 Microsoft 支援從支援的 hotfix。 不過,此 Hotfix 僅用於修正本文中所述的問題。 此 hotfix 只適用於發生本文所述之問題的系統。 此 hotfix 可能會接受其他測試。 因此,如果此問題的影響不會很嚴重,我們建議您等候含此 hotfix 的下一版軟體更新。

如果 hotfix 可供下載,在此知識庫文件頂端將出現「可用的 Hotfix」區段。 如果這個區段沒有出現,請連絡 Microsoft 客戶服務及支援以取得 hotfix。

注意: 如果發生其他問題,或如果需要進行疑難排解,您可能必須建立個別的服務要求。 收取支援費用會套用到其他支援問題和此特定 hotfix 無法解決的問題。 如需 Microsoft 客戶服務和支援的電話號碼或建立個別的服務要求的完整清單,請移至下列 Microsoft 網站:

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

注意: 「 下載 Hotfix 」 表單會顯示 hotfix 可用的語言。 如果看不到您的語言,是因為未提供該語言的 Hotfix 。

先決條件

若要套用此 hotfix,您必須擁有 Windows 7 或安裝的 Windows Server 2008 R2 的Service Pack 1

重新啟動需求

套用此 hotfix 後,您必須重新啟動電腦。

Hotfix 取代資訊

此 hotfix 不會取代任何先前發行的 hotfix。

檔案資訊

此 Hotfix 的英文版 (美國) 會安裝具有下表中所列屬性的檔案。 這些檔案的日期與時間是以國際標準時間 (UTC) 表示。 本機電腦上這些檔案的日期與時間,是以您當地的時間和目前的日光節約時間 (DST) 的時差來顯示。 此外,當您對檔案執行特定作業時,其日期與時間可能會改變。

Windows 7 和 Windows Server 2008 R2 檔案資訊和注意事項

重要 Windows 7 hotfix 及 Windows Server 2008 R2 hotfix 隨附在相同的套件中。 不過,在 [Hotfix 要求] 頁面上的 Hotfix 會在這兩個作業系統下列出。 若要要求套用至一或兩個作業系統的 Hotfix 套件,請選取此頁面上列在 Windows 7/Windows Server 2008 R2 之下的 Hotfix。 永遠參考文件的〈套用〉一節以判斷實際套用每個 hotfix 的作業系統。

  • 藉由檢查的檔案版本號碼,如下列表格所示,可以識別套用至特定產品、 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 和 Windows Server 2008 R2

    SP1

    LDR

  • GDR 服務分支只包含這些修正程式所發行的通用廣泛的極為重要問題。 LDR 服務分支除了通用修正程式之外,還包含 Hotfix。

  • 資訊清單檔案 (.manifest) 及菊檔案 (.mum) 所安裝的每個環境都分別列於 < 其他檔案的="" windows="" 7="" 和="" windows="" server="" 2008="" r2="" 資訊=""> 一節。

  • 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 服務會刪除所有該用戶端處理程序所儲存的狀態資訊。 發生這種情況之後,會釋放該記憶體。

在此情況下,數個 1000 通知已註冊。 在事件發生之後,會釋放這些無效的用戶端的所有記憶體。

在 Windows 8 中解決此問題。

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。