Симптоми
Да предположим, че имате приложение или инструмент, който се изпълнява Windows 7 или Windows Server 2008 R2, и че приложението или инструмент извършва една или повече от следните задачи:
-
Наблюдение на друг сървър с помощта на ICMP или ping.exe
-
След стартиране на няколко краткотрайни процеси за извършване на работа и процесът е спряна
-
След това мрежа дейност и процесът е спряна от друго приложение или скрипт
В тази ситуация, след като вашият сървър работи непрекъснато за няколко часа или няколко дни, можете да забележите, че услугата на мрежата магазин интерфейс (НСИ) изтичане на памет. Освен това можете да забележите следните симптоми:
-
Ако спрете софтуер за мониторинг, загуба на памет спира.
-
Ако спрете приложението и след това рестартирайте компютъра, не загуба на памет възниква в НСИ услуга.
-
В някои случаи Ако забраните и след това разрешите мрежовата карта, забележите внезапно склада на процесора от НСИ услугата. Освен това използването на паметта веднага се прекъсва от 1 или 2 гигабайта (ГБ) 200 или 300 мегабайта (МБ).
Този проблем може да възникне в някой от следните сценарии.
Сценарий 1
Ако приложение като ping.exe принудително е спряна, е възможно, че не се нарича IcmpCloseHandle функция . В този случай НСИ услугата може да открие, че има клиенти. Затова услугата непрекъснато изпраща известия за ICMP съобщения. Тъй като клиентът не съществува, списък продължава да нараства. Списъкът не се изчистват, до НСИ услуга е спряна.
За да изпратите ping, трябва да отворите ICMP манипулатор и след това тези други IP функции за изпращане и получаване на ICMP данни:
След приложението изпрати ping, той трябва да повика IcmpCloseHandle функция за затваряне на манипулатора ICMP.
Сценарий 2
Разработчик на софтуер създава приложение за изпращане и получаване на ICMP съобщения с помощта на API за IPHlelper. Ако само един манипулатор на ICMP се използва за изпращане на ICMP съобщения за много клиенти и дали това прави много висока скорост, IPHelper API, който е уведомен, когато се получи съобщение не поддържа скорост. В този случай забелязвате, че НСИ услугата памет продължава да нараства експоненциално. Освен това забележите голямо използване на CPU от НСИ услугата (nsisvc.dll).
Сценарий 3
Имате приложение или услуга, която пряко или непряко използва IP функции. Приложението спира или е спряло, и тя не затваряйте спокойно при всяко известие регистрация не е отменена (CancelMibChangeNotify2). В този случай НСИ Сървърът поддържа регистрацията до процеса, който е спрян. Ако има много случаи на спиране на приложението, НСИ услуга ще има много забавени регистрациите. Състояние на асинхронно RPC и друга информация, която се поддържа за всяка регистрация. Това добавя памет. Обикновено тези регистрациите са направени за интерфейс промяна или промяна на едноадресни IP адрес. Ако няма промяна в състоянието, тези регистрациите все още се поддържат.
Следните функции за уведомяване се използват по време на процеса на регистрация:
Причината, че много приложения не повикване (CancelMibChangeNotify2) или да спрете процеса на обсъждания в темата NotifyIpInterfaceChange функция на уеб сайта на Microsoft Developer Network.
След NotifyIpInterfaceChange функция се нарича за регистриране за уведомяване за промени, тези съобщения продължават да бъдат изпратени, докато приложението unregisters да получават известия за промяна или спиране на приложението. Ако приложението спре, системата автоматично unregisters регистрацията за известия за промяна. Ние препоръчваме да конфигурирате изрично откажете известия за промяна преди в приложението.
За всяка регистрация за известие направите да отдели памет за non-paged pool (NPP)NSpc етикет.
Причина
Този проблем възниква, защото процеса, който се регистрира за уведомяване изходи без първо unregistering от НСИ услуга. Затова регистрация изтече в НСИ причинява изтичане на памет в НСИ услуга. Освен това, NPP изтичане на памет в НСИ прокси контексти етикет 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 0. 16xxx
Windows 7 и Windows Server 2008 R2
RTM
GDR
6.1.760 1. 22xxx
Windows 7 и Windows Server 2008 R2
SP1
LDR
-
GDR папките съдържат само онези файлове, които са за широко разпространение адрес широко, изключително важни проблеми. LDR папките съдържат актуални корекции в допълнение на корекциите за широко разпространение.
-
Файловете MANIFEST (.manifest) и файловете MUM (.mum), инсталирани за всяка работна среда, са изброени отделно в раздела "Допълнителна файлова информация за Windows 7 и Windows Server 2008 R2".
-
MUM и MANIFEST файловете и файлове свързана защита (.cat), са изключително важни за поддържане на състоянието на актуализираните компоненти. Каталожните файлове на защитата, за които не са изброени атрибути, са подписани с цифров подпис на Microsoft.
За всички поддържани x 86-базирани версии на 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 |
20480 |
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. Тази корекция не позволява на услугата на НСИ от изтичане на памет независимо от това как приложението е спряно.
Решение за сценарий 2
Разработчик на софтуер трябва да създадете няколко ICMP манипулатори за изпращане на заявките за ICMP. Ако трябва да изпратите голям брой ICMP пакети, трябва да използвате сурови контакти и директно изпращане и получаване ICMP пакети в ДИРЕКТЕН контакт. Това ще даде най-бързо изпълнение.
Решение за сценарий 3
В този случай забраняване и разрешаване на мрежовата карта, памет веднага намалява, но има кратко склада на процесора.
Това се случва, защото при промяна на IP адрес или интерфейс, НСИ услугата уведомление от ядрото. Услугата на НСИ се опитва да уведоми Клиентите, които са регистрирани за уведомяване. Когато услугата се опитва да уведоми клиента процес, който не съществува, RPC отчита грешка. Затова услугата НСИ изтрива цялата информация за състояние, който е записан за този процес на клиента. След това се случи, че паметта е освободен.
В този случай са регистрирани няколко стотици хиляди уведомления. След събитие на паметта за невалиден тези клиенти е освободен.
Този проблем е решен в Windows 8.