Požymiai
Tarkime, kad turite taikomąją programą arba įrankį, kuris veikia "Windows 7" arba "Windows Server 2008 R2" ir kad programa arba įrankis atlieka vieną ar daugiau iš šių užduočių:
- Kito serverio stebėjimas naudojant ICMP arba ping.exe
- Kelių trumpalaikių procesų pradėjimas darbui atlikti, tada procesas sustabdomas
- Atliekant bet kokią tinklo veiklą, procesą sustabdo kita programa arba scenarijus
Tokiu atveju, kai serveris nepertraukiamai veikia kelias valandas arba kelias dienas, pastebite, kad tinklo saugyklos sąsajos (NSI) tarnybos atmintis nutekėjo. Be to, pastebite šiuos požymius:
- Jei sustabdysite stebėjimo programinę įrangą, atminties nutekėjimas sustos.
- Jei sustabdysite programą ir iš naujo paleisite kompiuterį, NSI tarnyba neatskleis atminties nutekėjimo.
- Kai kuriais atvejais, jei išjungsite ir įjungsite tinklo adapterį, pastebėsite staigų NSI tarnybos CPU naudojimo šuolį. Be to, atminties naudojimas iš karto sumažėja nuo 1 arba 2 gigabaitų (GB) iki 200 arba 300 megabaitų (MB).
Ši problema gali kilti bet kuriame iš šių scenarijų.
1 scenarijus
Jei tokia taikomoji programa, kaip ping.exe, priverstinai sustabdoma, gali būti, kad funkcija IcmpCloseHandle nėra iškviesta. Tokiu atveju NSI tarnyba gali aptikti, kad klientas yra pasiekiamas. Todėl tarnyba nuolat siunčia pranešimus apie bet kokius ICMP pranešimus. Kadangi kliento nėra, pranešimų sąrašas vis didėja. Sąrašas išvalomas tik sustabdžius NSI tarnybą.
Norėdami siųsti ryšio užklausą, turite atidaryti ICMP rankenėlę ir tada naudoti šias kitas IP pagalbinės priemonės funkcijas ICMP duomenims siųsti ir gauti:
Kai programa išsiunčia ping, ji turi iškviesti funkciją IcmpCloseHandle , kad uždarytų ICMP rankenėlę.
2 scenarijus
Programinės įrangos kūrėjas sukuria programą, kuri siunčia ir gauna ICMP pranešimus naudodamas IPHlelper API. Jei ICMP pranešimams keliems klientams siųsti naudojama tik viena ICMP rankenėlė ir jei ji tai daro labai dideliu greičiu, IPHelper API, kuriai pranešama gavus pranešimą, negali išlaikyti greičio. Šiuo atveju pastebite, kad NSI tarnybos atmintis toliau auga eksponentiškai. Be to, pastebite, kad NSI tarnyba intensyviai naudoja CPU (nsisvc.dll).
3 scenarijus
Turite programą arba tarnybą, kuri tiesiogiai ar netiesiogiai naudoja IP Helper funkcijas. Programa sustabdoma arba sustabdoma ir neuždaroma sklandžiai, kai neatšaukiama kiekvieno pranešimo registracija (CancelMibChangeNotify2). Tokiu atveju NSI serveris nelaukia sustabdyto proceso registracijos. Jei yra daug paraiškų sustabdymo atvejų, NSI paslauga turės daug užsitęsusių registracijų. RPC, asinchroninė būsena ir kita informacija tvarkoma kiekvienos registracijos metu. Tai padidina atminties naudojimą. Paprastai tokios registracijos atliekamos keičiant sąsają arba vienadresio perdavimo IP adresą. Jei valstybėje nesikeičia, šios registracijos vis tiek išlaikomos.
Registracijos metu naudojamos šios pranešimų funkcijos:
- NotifyAddrChange
- NotifyIpInterfaceChange
- NotifyRouteChange
- NotifyRouteChange2
- NotifyUnicastIpAddressChange
Priežastis, dėl kurios daugelis programų neiškviečia (CancelMibChangeNotify2) arba sustabdo procesą, aptariama "Microsoft" kūrėjų tinklo svetainės temoje " NotifyIpInterfaceChange" funkcija .
Iškvietus funkciją "NotifyIpInterfaceChange ", kad užsiregistruotų pranešimams apie pakeitimus, šie pranešimai toliau siunčiami tol, kol programa išsiregistruoja, kad gautų pranešimus apie pakeitimus, arba programa sustos. Jei programa sustabdoma, sistema automatiškai išregistruoja bet kokią pranešimų apie pakeitimus registraciją. Rekomenduojame sukonfigūruoti programą, kad ji aiškiai išsiregistruotų ir gautų keitimų pranešimus prieš ją sustabdant.
Kiekvienai registracijai pranešimui taip pat skiriate šiek tiek nepuslapinės telkinio (NPP) atminties NSpc žymai.
Priežastis
Ši problema kyla todėl, kad procesas, kuris registruojasi pranešimams, išeina neišregistravęs iš NSI tarnybos. Todėl NSI registracijos nutekėjimas sukelia NSI tarnybos atminties nutekėjimą. Be to, dėl AE nuteka atmintis NSI tarpinio serverio konteksto žymėje NSpc (NSI.dll).
Sprendimas
Karštųjų pataisų informacija
Palaikomos karštosios pataisos pasiekiamos "Microsoft" palaikymo svetainėje. Tačiau ši karštoji pataisa skirta ištaisyti tik šiame straipsnyje aprašytą problemą. Taikykite šią karštąją pataisą tik toms sistemoms, kurios susiduria su šiame straipsnyje aprašyta problema. Ši karštoji pataisa gali būti papildomai patikrinta. Todėl, jei jūsų ši problema stipriai nepaveikė, rekomenduojame palaukti kito programinės įrangos naujinimo, kuriame yra ši karštoji pataisa.
Jei karštąją pataisą galima atsisiųsti, šio žinių bazės straipsnio viršuje yra skyrius "Karštųjų pataisų atsisiuntimas". Jei šis skyrius nerodomas, susisiekite su "Microsoft" klientų aptarnavimo ir palaikymo tarnyba, kad gautumėte karštąją pataisą.
Atkreipkite dėmesį Iškilus papildomų problemų arba prireikus trikčių diagnostikos, gali tekti sukurti atskirą aptarnavimo užklausą. Įprastos palaikymo išlaidos bus taikomos papildomiems palaikymo klausimams ir problemoms, kurios neatitinka šios konkrečios karštosios pataisos reikalavimų. Norėdami gauti visą "„Microsoft“" klientų aptarnavimo ir palaikymo tarnybos telefonų numerių sąrašą arba sukurti atskirą aptarnavimo užklausą, apsilankykite šioje "„Microsoft“" žiniatinklio svetainėje:
http://support.microsoft.com/contactus/?ws=support
Atkreipkite dėmesį Formoje "Karštųjų pataisų atsisiuntimas" rodomos kalbos, kurioms galima naudoti karštąją pataisą. Jei nematote savo kalbos, vadinasi, nėra tos kalbos karštųjų pataisų.
Būtinosios sąlygos
Jei norite taikyti šią karštąją pataisą, turite turėti įdiegtą "Windows 7" arba "Windows Server 2008 R2" 1 pakeitimų paketą.
Reikia paleisti iš naujo
Pritaikę šią karštąją pataisą turėsite iš naujo paleisti kompiuterį.
Karštųjų pataisų pakeitimo informacija
Ši karštoji pataisa nepakeičia anksčiau išleistų karštųjų pataisų.
Failo informacija
Naudojant šios karštosios pataisos anglų kalbos (Jungtinės Valstijos) versiją, įdiegiami failai su tolesnėse lentelėse išvardytais atributais. Šių failų datos ir laikai nurodyti pasauliniu koordinuotuoju laiku (UTC). Šių failų datos ir laikai jūsų vietiniame kompiuteryje rodomi vietiniu laiku, atsižvelgiant į jūsų dabartinį vasaros laiko (DST) poslinkį. Be to, data ir laikas gali pasikeisti, kai su failais atliksite tam tikras operacijas.
"Windows 7" ir "Windows Server 2008 R2" failo informacija ir pastabos
Svarbu "Windows 7" karštosios pataisos ir "Windows Server 2008 R2" karštosios pataisos įtrauktos į tuos pačius paketus. Tačiau karštųjų pataisų užklausos puslapyje karštosios pataisos yra išvardytos prie abiejų operacinių sistemų. Norėdami paprašyti karštųjų pataisų paketo, kuris taikomas vienai arba abiem operacinėms sistemoms, pasirinkite karštąją pataisą, nurodytą puslapio dalyje "Windows 7/Windows Server 2008 R2". Visada vadovaukitės straipsnių skyriumi "Taikoma", kad nustatytumėte, kuriai operacinei sistemai taikomos kiekviena karštoji pataisa.
Failus, taikomus konkrečiam produktui, SR_Level (RTM, SPn) ir paslaugų šakai (LDR, GDR), galima nustatyti išnagrinėjus failų versijų numerius, kaip parodyta toliau pateiktoje lentelėje.
Versija Produktas SR_Level Paslaugos šaka 6.1.760 0. 16xxx „Windows 7“ ir „Windows Server 2008 R2“ RTM GDR 6.1.760 1. 22xxx „Windows 7“ ir „Windows Server 2008 R2“ SP1 LDR GDR tarnybos šakose yra tik tos pataisos, kurios plačiai išleidžiamos plačiai paplitusioms itin svarbioms problemoms spręsti. Be plačiai išleistų pataisų, LDR tarnybos šakose yra karštųjų pataisų.
Kiekvienai aplinkai įdiegti MANIFEST failai (.manifest) ir MUM failai (.mum) yra išvardyti atskirai skyriuje "Papildoma failų informacija, skirta "Windows 7" ir "Windows Server 2008 R2".
MUM ir MANIFEST failai bei susiję saugos katalogo (.cat) failai yra labai svarbūs atnaujintų komponentų būsenai palaikyti. Saugos katalogo failai, kurių atributai nenurodyti, pasirašomi "„Microsoft“" skaitmeniniu parašu.
Visoms palaikomoms "Windows 7" x86 pagrindo versijoms
| Failo pavadinimas | Failo versija | Failo dydis | Data | Laikas | Platforma |
|---|---|---|---|---|---|
| Nsi.dll | 6.1.7600.16385 | 8,704 | 2009-Liep-14 | 01:16 | x86 |
| Nsiproxy.sys | 6.1.7600.16385 | 16,896 | 2009-Liep-13 | 23:12 | x86 |
| Nsisvc.dll | 6.1.7601.22590 | 20,480 | 2014 m. vasario 05 d. | 02:03 | x86 |
| Winnsi.dll | 6.1.7600.16385 | 16,896 | 2009-Liep-14 | 01:16 | x86 |
Visoms palaikomoms "Windows 7" ir "Windows Server 2008 R2" x64 pagrindo versijoms
| Failo pavadinimas | Failo versija | Failo dydis | Data | Laikas | Platforma |
|---|---|---|---|---|---|
| Nsi.dll | 6.1.7600.16385 | 13,824 | 2009-Liep-14 | 01:41 | x64 |
| Nsiproxy.sys | 6.1.7601.22590 | 24,576 | 2014 m. vasario 05 d. | 01:15 | x64 |
| Nsisvc.dll | 6.1.7601.22590 | 26,624 | 2014 m. vasario 05 d. | 02:42 | x64 |
| Winnsi.dll | 6.1.7600.16385 | 26,112 | 2009-Liep-14 | 01:41 | x64 |
| Nsi.dll | 6.1.7601.22590 | 8,704 | 2014 m. vasario 05 d. | 02:03 | x86 |
| Winnsi.dll | 6.1.7601.22590 | 16,896 | 2014 m. vasario 05 d. | 02:04 | x86 |
Visoms palaikomoms IA-64 pagrindo "Windows Server 2008 R2" versijoms
| Failo pavadinimas | Failo versija | Failo dydis | Data | Laikas | Platforma |
|---|---|---|---|---|---|
| Nsi.dll | 6.1.7600.16385 | 18,944 | 2009-Liep-14 | 01:48 | IA-64 |
| Nsiproxy.sys | 6.1.7601.22590 | 53,760 | 2014 m. vasario 05 d. | 00:50 | IA-64 |
| Nsisvc.dll | 6.1.7601.22590 | 60,928 | 2014 m. vasario 05 d. | 01:48 | IA-64 |
| Winnsi.dll | 6.1.7600.16385 | 38,912 | 2009-Liep-14 | 01:50 | IA-64 |
| Nsi.dll | 6.1.7601.22590 | 8,704 | 2014 m. vasario 05 d. | 02:03 | x86 |
| Winnsi.dll | 6.1.7601.22590 | 16,896 | 2014 m. vasario 05 d. | 02:04 | x86 |
Papildoma informacija apie failus, skirtus "Windows 7" ir "Windows Server 2008 R2"
Papildomi failai visoms palaikomoms "Windows 7" x86 pagrindo versijoms
| Failo vardas | Package_1_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum |
|---|---|
| Failo versija | Netaikoma |
| Failo dydis | 1,822 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | Package_2_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum |
| Failo versija | Netaikoma |
| Failo dydis | 1,805 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | Package_3_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum |
| Failo versija | Netaikoma |
| Failo dydis | 1,807 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | Package_for_kb2847346_rtm~31bf3856ad364e35~x86~~6.1.1.0.mum |
| Failo versija | Netaikoma |
| Failo dydis | 1,459 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | Package_for_kb2847346_sp1~31bf3856ad364e35~x86~~6.1.1.0.mum |
| Failo versija | Netaikoma |
| Failo dydis | 1,918 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | X86_dfca12963d5c03edca970b29ad513eb4_31bf3856ad364e35_6.1.7601.22590_none_ff32d7aebbbb6891.manifest |
| Failo versija | Netaikoma |
| Failo dydis | 699 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | X86_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_749890603f18301d.manifest |
| Failo versija | Netaikoma |
| Failo dydis | 8,301 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:38 |
| Platforma | Netaikoma |
Papildomi failai visoms palaikomoms "Windows 7" ir "Windows Server 2008 R2" x64 pagrindo versijoms
| Failo vardas | Amd64_37e172e525713d1718cb98daea282913_31bf3856ad364e35_6.1.7601.22590_none_9888f3a0165278fe.manifest |
|---|---|
| Failo versija | Netaikoma |
| Failo dydis | 1,048 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | Amd64_3839818617f8250fd6f59e35da1df9bd_31bf3856ad364e35_6.1.7601.22590_none_8fbf427f98b0d1cb.manifest |
| Failo versija | Netaikoma |
| Failo dydis | 703 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | Amd64_a9af583825031567fe0548a9c2c728ab_31bf3856ad364e35_6.1.7601.22590_none_59ced916edddc9da.manifest |
| Failo versija | Netaikoma |
| Failo dydis | 703 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | Amd64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_d0b72be3f775a153.manifest |
| Failo versija | Netaikoma |
| Failo dydis | 8,305 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:41 |
| Platforma | Netaikoma |
| Failo vardas | Package_1_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
| Failo versija | Netaikoma |
| Failo dydis | 1,832 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | Package_2_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
| Failo versija | Netaikoma |
| Failo dydis | 2,237 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | Package_3_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
| Failo versija | Netaikoma |
| Failo dydis | 2,015 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | Package_4_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
| Failo versija | Netaikoma |
| Failo dydis | 2,036 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | Package_for_kb2847346_rtm~31bf3856ad364e35~amd64~~6.1.1.0.mum |
| Failo versija | Netaikoma |
| Failo dydis | 1,467 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | Package_for_kb2847346_sp1~31bf3856ad364e35~amd64~~6.1.1.0.mum |
| Failo versija | Netaikoma |
| Failo dydis | 2,830 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | Wow64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_db0bd6362bd6634e.manifest |
| Failo versija | Netaikoma |
| Failo dydis | 4,690 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 02:16 |
| Platforma | Netaikoma |
Papildomi failai visoms palaikomoms IA-64 pagrįstoms "Windows Server 2008 R2" versijoms
| Failo vardas | Ia64_44d491142723affea686ec2fba3cb4ac_31bf3856ad364e35_6.1.7601.22590_none_dc26e555dbabe437.manifest |
|---|---|
| Failo versija | Netaikoma |
| Failo dydis | 1,046 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | Ia64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_749a34563f163919.manifest |
| Failo versija | Netaikoma |
| Failo dydis | 8,303 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | Package_1_for_kb2847346~31bf3856ad364e35~ia64~~6.1.1.0.mum |
| Failo versija | Netaikoma |
| Failo dydis | 2,029 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | Package_for_kb2847346_sp1~31bf3856ad364e35~ia64~~6.1.1.0.mum |
| Failo versija | Netaikoma |
| Failo dydis | 1,446 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 06:35 |
| Platforma | Netaikoma |
| Failo vardas | Wow64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_db0bd6362bd6634e.manifest |
| Failo versija | Netaikoma |
| Failo dydis | 4,690 |
| Data (UTC) | 2014 m. vasario 05 d. |
| Laikas (UTC) | 02:16 |
| Platforma | Netaikoma |
Sprendimo būdas
Norėdami išspręsti šią problemą, naudokite vieną iš toliau nurodytų sprendimo būdų, atitinkančių jūsų situaciją.
1 scenarijaus sprendimo būdas
Įsitikinkite, kad taikymas, pvz., ping.exe, nėra priverstinai sustabdytas. Vietoj to leiskite programai sklandžiai išsijungti.
Arba atnaujinkite versiją į "Windows Server 2012". Ši problema išspręsta "Windows Server 2012". Ši pataisa apsaugo nuo NSI tarnybos atminties nutekėjimo, neatsižvelgiant į tai, kaip programa sustabdoma.
2 scenarijaus sprendimo būdas
Programinės įrangos kūrėjas turi sukurti kelias ICMP sistemines nuorodas ICMP užklausoms siųsti. Jei turite siųsti daug ICMP paketų, turėtumėte naudoti neapdorotus lizdus ir tiesiogiai siųsti bei gauti ICMP paketus į RAW lizdą. Tai užtikrins greičiausią našumą.
3 scenarijaus sprendimo būdas
Tokiu atveju, jei išjungsite ir įjungsite tinklo adapterį, atminties naudojimas iš karto sumažės, tačiau CPU naudojimas šiek tiek padidės.
Taip atsitinka todėl, kad pasikeitus IP adresui arba sąsajai branduolys praneša NSI tarnybai. Tada NSI tarnyba bando pranešti apie visus klientus, kurie yra užsiregistravę pranešimui. Kai tarnyba bando įspėti kliento procesą, kurio nėra, RPC pateikia klaidos pranešimą. Todėl NSI tarnyba panaikina visą būsenos informaciją, kuri buvo įrašyta to kliento procesui. Kai tai įvyksta, atmintis atlaisvinama.
Tokiu atveju užregistruojami keli šimtai tūkstančių pranešimų. Įvykus įvykiui, visa šių netinkamų klientų atmintis bus atlaisvinta.
Ši problema išspręsta „Windows 8“.