Symptom
Anta att du har ett program eller verktyg som körs i Windows 7 eller Windows Server 2008 R2 och program eller verktyg utför en eller flera av följande åtgärder:
-
Övervakning av en annan server med hjälp av ICMP- eller ping.exe
-
Sedan stoppas startar flera kortlivade processer för att utföra en uppgift och processen
-
Sedan stoppas gör någon nätverksaktivitet och processen av ett annat program eller skript
I det här fallet, när servern körs kontinuerligt i flera timmar eller flera dagar, märker du att tjänsten Network Store Interface (NSI) läcker minne. Dessutom ser du följande:
-
Om du slutar övervaka programvaran stoppar minnesläckan.
-
Om du stoppar programmet och sedan starta om datorn, minnesläcka ingen i tjänsten NSI.
-
I vissa fall, om du inaktiverar och aktiverar nätverkskortet märker du en plötslig insamling av CPU-användning av tjänsten NSI. Dessutom kan kommer minnesanvändningen omedelbart droppar från 1 eller 2 GB (Gigabyte) till 200 eller 300 megabyte (MB).
Det här problemet kan uppstå i något av följande scenarier.
Scenario 1
Om ett program som ping.exe tvång har stoppats, är det möjligt att IcmpCloseHandle funktion inte anropas. I det här fallet upptäcker NSI-tjänsten att det finns en klient. Därför kan tjänsten kontinuerligt skicka meddelanden om att ICMP-meddelanden. Eftersom klienten inte finns fortsätter meddelandelistan att öka. Listan inte rensas uppåt tills NSI-tjänsten stoppas.
Om du vill skicka ett ping måste du öppna ICMP-referens och använda dessa IP Helper-funktioner för att skicka och ta emot ICMP-data:
När programmet skickar ping, måste den anropa IcmpCloseHandle funktionen Stäng ICMP-handtaget.
Scenario 2
Programvaruutvecklare skapar ett program för att skicka och ta emot ICMP-meddelanden med hjälp av IPHlelper APIs. Om endast en referens för ICMP används för att skicka ICMP-meddelanden för flera klienter, och om detta sker kan du med en mycket hög hastighet, inte kan IPHelper-API som meddelas när ett meddelande tas emot upprätthålla hastigheten. I det här fallet märker du att NSI service minne fortsätter att växa exponentiellt. Dessutom syns hög CPU-användning av tjänsten NSI (nsisvc.dll).
Scenario 3
Du har ett program eller en tjänst som direkt eller indirekt använder IP Helper-funktioner. Programmet slutar eller stoppats och inte avslutas skriptet när varje meddelande om registrering inte är avbruten (CancelMibChangeNotify2). I det här fallet behåller NSI server registrering väntar för processen stoppas. Om det finns flera instanser av programmet upphörande, har NSI tjänst många kvarvarande registreringar. Ett tillstånd för asynkrona RPC- och annan information bevaras för varje registrering. Detta lägger till minnesanvändningen. Dessa registreringar görs oftast för att ändra ett gränssnitt eller en ändring av Unicast IP-adress. Om ingen ändring i tillståndet hanteras fortfarande dessa registreringar.
Följande meddelande funktioner används under registreringen:
Orsaken till att många program inte ringa (CancelMibChangeNotify2) eller avbryta processen beskrivs i avsnittet NotifyIpInterfaceChange funktion på webbplatsen Microsoft Developer Network.
När funktionen NotifyIpInterfaceChange anropas för att registrera för meddelanden om, i fortsättningen dessa meddelanden skickas förrän programmet Avregistrerar att ta emot meddelanden eller programmet slutar. Om programmet slutar avregistrerar systemet automatiskt registrering för meddelanden. Vi rekommenderar att du konfigurerar ett program uttryckligen avregistreras för meddelanden innan den slutar.
Du gör också att allokera minne för icke växlingsbar pool (NPP) för varje registrering för anmälan av denNSpc-taggen.
Orsak
Det här problemet uppstår eftersom processen som registrerar för anmälan avslutar utan första avregistreras från NSI-tjänsten. Registrering-läcka i NSI medför därför minnesläckan i NSI service. Dessutom, NPP läcker minne i NSI Proxy sammanhang taggen NSpc (NSI.dll).
Lösning
Information om snabbkorrigeringen
En snabbkorrigering är tillgänglig från Microsoft Support. Den här snabbkorrigeringen är emellertid avsedd att åtgärda det problem som beskrivs i denna artikel. Använd den här snabbkorrigeringen endast på datorer som har problemet som beskrivs i denna artikel. Snabbkorrigeringen kan komma att testas igen. Om du inte störs alltför mycket av detta problem rekommenderar vi att du väntar på nästa programuppdatering som innehåller den här snabbkorrigeringen.
Om snabbkorrigeringen är tillgänglig för hämtning finns ett avsnitt för ”snabbkorrigeringen är tillgänglig” överst i den här Knowledge Base-artikeln. Om den sektionen saknas, kontakta Microsofts support för att få tag på hotfixen.
Obs! Om det uppstår ytterligare problem eller krävs felsökning, kan du behöva skapa en serviceförfrågan. De vanliga supportkostnaderna gäller för övriga supportfrågor och problem som inte uppfyller kraven för den här snabbkorrigeringen. En fullständig lista över telefonnummer för Microsofts kundtjänst och Support eller skapa en serviceförfrågan finns på följande Microsoft-webbplats:
http://support.microsoft.com/contactus/?ws=support
Obs! ”Snabbkorrigeringen tillgänglig”-formuläret visar de språk som snabbkorrigeringen är tillgänglig. Om ditt språk inte visas beror det på att ingen snabbkorrigering är tillgänglig för språket.
Förutsättningar
Om du vill installera den här snabbkorrigeringen måste du ha Service Pack 1 för Windows 7 eller Windows Server 2008 R2 är installerat.
Krav på omstart
Du måste starta om datorn när du har installerat den här snabbkorrigeringen.
Ersättningsinformation för Hotfix
Den här snabbkorrigeringen ersätter inte någon tidigare utgiven snabbkorrigering.
Filinformation
Engelska (USA) versionen av den här snabbkorrigeringen installerar filer med de filattribut som visas i följande tabeller. Datum och tider för dessa filer anges i UTC-tid (UTC). Datum och tider för dessa filer på den lokala datorn visas i lokal tid tillsammans med din aktuella sommartid (DST). Datum och tider kan dessutom ändras när du utför vissa åtgärder på filerna.
Filinformation för Windows 7 och Windows Server 2008 R2 och anteckningar
Viktigt! Snabbkorrigeringar för Windows 7 och Windows Server 2008 R2 snabbkorrigeringar ingår i samma paket. Dock finns snabbkorrigeringar på sidan snabbkorrigeringen begäran under båda operativsystemen. Om du vill begära snabbkorrigeringspaket som gäller för en eller båda operativsystemen markerar du snabbkorrigeringen som anges under ”Windows 7 och Windows Server 2008 R2” på sidan. Alltid finns i avsnittet ”gäller för” i artiklarna för att fastställa själva operativsystemet som avser varje snabbkorrigering.
-
De filer som gäller en viss produkt, SR_Level (RTM, SPn) och verksamhetsgren (LDR, GDR) framgår av undersöker versionsnumren som visas i följande tabell.
Version
Produkt
SR_Level
Verksamhetsgren
6.1.760 0. 16 - xxx
Windows 7 och Windows Server 2008 R2
RTM
GDR
6.1.760 1. 22 - xxx
Windows 7 och Windows Server 2008 R2
SP1
LDR
-
GDR-verksamhetsgrenar innehåller endast korrigeringar brett utgivna för vitt spridda, ytterst viktiga problem. LDR-verksamhetsgrenar innehåller snabbkorrigeringar utöver brett utgivna korrigeringar.
-
I MANIFESTET (.manifest) och MUM filerna (.mum) som installeras för de olika miljöerna anges separat i avsnittet ”ytterligare filinformation för Windows 7 och Windows Server 2008 R2”.
-
MUM- och MANIFEST-filer, och tillhörande säkerhetskatalogfiler (.cat) filer, är mycket viktigt att bibehålla statusen för de uppdaterade komponenterna. Säkerhetskatalogfilerna attribut som inte finns listade, är signerade med en digital Microsoft-signatur
För alla x 86-baserade versioner av Windows 7 som stöds
Filnamn |
Filversion |
Storlek |
Datum |
Tid |
Plattform |
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 |
För alla x64-baserade versioner av Windows 7 och Windows Server 2008 R2 som stöds
Filnamn |
Filversion |
Storlek |
Datum |
Tid |
Plattform |
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 |
För alla IA-64-baserade versioner av Windows Server 2008 R2 som stöds
Filnamn |
Filversion |
Storlek |
Datum |
Tid |
Plattform |
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 |
Ytterligare filinformation för Windows 7 och Windows Server 2008 R2
Ytterligare filer för alla x86-baserade versioner av Windows 7
Filnamn |
Package_1_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum |
Filversion |
Ej tillämplig |
Storlek |
1,822 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
Package_2_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum |
Filversion |
Ej tillämplig |
Storlek |
1,805 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
Package_3_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum |
Filversion |
Ej tillämplig |
Storlek |
1,807 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
Package_for_kb2847346_rtm~31bf3856ad364e35~x86~~6.1.1.0.mum |
Filversion |
Ej tillämplig |
Storlek |
1,459 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
Package_for_kb2847346_sp1~31bf3856ad364e35~x86~~6.1.1.0.mum |
Filversion |
Ej tillämplig |
Storlek |
1,918 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
X86_dfca12963d5c03edca970b29ad513eb4_31bf3856ad364e35_6.1.7601.22590_none_ff32d7aebbbb6891.manifest |
Filversion |
Ej tillämplig |
Storlek |
699 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
X86_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_749890603f18301d.manifest |
Filversion |
Ej tillämplig |
Storlek |
8,301 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:38 |
Plattform |
Ej tillämplig |
Ytterligare filer för alla x64-baserade versioner av Windows 7 och Windows Server 2008 R2 som stöds
Filnamn |
Amd64_37e172e525713d1718cb98daea282913_31bf3856ad364e35_6.1.7601.22590_none_9888f3a0165278fe.manifest |
Filversion |
Ej tillämplig |
Storlek |
1,048 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
Amd64_3839818617f8250fd6f59e35da1df9bd_31bf3856ad364e35_6.1.7601.22590_none_8fbf427f98b0d1cb.manifest |
Filversion |
Ej tillämplig |
Storlek |
703 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
Amd64_a9af583825031567fe0548a9c2c728ab_31bf3856ad364e35_6.1.7601.22590_none_59ced916edddc9da.manifest |
Filversion |
Ej tillämplig |
Storlek |
703 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
Amd64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_d0b72be3f775a153.manifest |
Filversion |
Ej tillämplig |
Storlek |
8,305 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:41 |
Plattform |
Ej tillämplig |
Filnamn |
Package_1_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Filversion |
Ej tillämplig |
Storlek |
1,832 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
Package_2_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Filversion |
Ej tillämplig |
Storlek |
2,237 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
Package_3_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Filversion |
Ej tillämplig |
Storlek |
2,015 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
Package_4_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Filversion |
Ej tillämplig |
Storlek |
2,036 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
Package_for_kb2847346_rtm~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Filversion |
Ej tillämplig |
Storlek |
1,467 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
Package_for_kb2847346_sp1~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Filversion |
Ej tillämplig |
Storlek |
2,830 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
Wow64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_db0bd6362bd6634e.manifest |
Filversion |
Ej tillämplig |
Storlek |
4,690 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
02:16 |
Plattform |
Ej tillämplig |
Ytterligare filer för alla IA-64-baserade versioner av Windows Server 2008 R2 som stöds
Filnamn |
Ia64_44d491142723affea686ec2fba3cb4ac_31bf3856ad364e35_6.1.7601.22590_none_dc26e555dbabe437.manifest |
Filversion |
Ej tillämplig |
Storlek |
1,046 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
Ia64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_749a34563f163919.manifest |
Filversion |
Ej tillämplig |
Storlek |
8,303 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
Package_1_for_kb2847346~31bf3856ad364e35~ia64~~6.1.1.0.mum |
Filversion |
Ej tillämplig |
Storlek |
2,029 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
Package_for_kb2847346_sp1~31bf3856ad364e35~ia64~~6.1.1.0.mum |
Filversion |
Ej tillämplig |
Storlek |
1,446 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
06:35 |
Plattform |
Ej tillämplig |
Filnamn |
Wow64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_db0bd6362bd6634e.manifest |
Filversion |
Ej tillämplig |
Storlek |
4,690 |
Datum (UTC) |
05-Feb-2014 |
Tid (UTC) |
02:16 |
Plattform |
Ej tillämplig |
Lösning
Undvik det här problemet, Använd någon av följande lösningar.
Lösning för Scenario 1
Kontrollera att programmet, som ping.exe, inte tvång stoppas. I stället smidigt kan programmet avslutas.
Du kan också uppgradera till Windows Server 2012. Problemet har åtgärdats i Windows Server 2012. Den här korrigeringen förhindrar att tjänsten NSI läcker minne oavsett hur programmet stoppas.
Lösning för Scenario 2
Programutvecklare bör skapa flera ICMP-handtag om du vill skicka ICMP-begäranden. Om du måste skicka ett stort antal ICMP-paket bör du använda rena sockets och direkt skicka och ta emot ICMP-paket på RAW-socketar. Detta ger bäst prestanda.
Lösning för Scenario 3
I det här scenariot om du inaktiverar och aktiverar nätverkskortet minnesanvändningen omedelbart minskar men har en kort insamling av CPU-användning.
Detta beror på att när en förändring inträffar i IP-adress eller ett gränssnitt, NSI tjänsten meddelas av kernel. NSI-tjänsten försöker sedan anmälas alla klienter som är registrerade för anmälan. När tjänsten försöker meddela en klientprocess inte finns rapporterar ett fel i RPC. Därför NSI tjänsten tar bort alla tillståndsinformation som har sparats som klienten processen. När detta inträffar som minne frigörs.
Flera hundra tusen anmälningar registreras i det här fallet. Allt minne för dessa ogiltiga frigörs när händelsen inträffar.
Problemet har åtgärdats i Windows 8.