Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Objawy

Załóżmy, że aplikacji lub narzędzie, które działa w systemie Windows 7 lub Windows Server 2008 R2, i że aplikacji lub narzędzia wykonuje jedną lub więcej z następujących czynności:

  • Monitorowanie innego serwera przy użyciu protokołu ICMP lub ping.exe

  • Uruchamianie wielu procesów krótkotrwałe do wykonywania pracy i proces zostaje zatrzymana

  • Robi operacje sieciowe, a proces jest następnie zatrzymane przez inną aplikację lub skrypt

W tej sytuacji, po tym serwer działa w sposób ciągły przez kilka godzin lub kilka dni, można zauważyć, że Usługa interfejsu magazynu sieciowego (NSI) występuje przeciek pamięci. Ponadto można zauważyć następujące symptomy:

  • Jeśli zatrzymasz oprogramowanie monitorujące zatrzymuje przeciek pamięci.

  • Jeśli Zatrzymaj aplikację, a następnie uruchom ponownie komputer, nie przeciek pamięci w usłudze NSI.

  • W niektórych przypadkach jeśli wyłączyć i włączyć kartę sieciową, można zauważyć nagły skok użycie Procesora przez usługę NSI. Ponadto użycie pamięci natychmiast pochodzi kropli 1 lub 2 gigabajty (GB) do 200 lub 300 megabajtów (MB).

Ten problem może wystąpić w dowolnym z poniższych scenariuszy.

Scenariusz 1

W przypadku aplikacji, takiej jak ping.exe przymusowo zatrzymane, jest możliwe, że nie jest wywoływana Funkcja IcmpCloseHandle . W takim przypadku usługi NSI może wykryć, że jest klientem. W związku z tym usługa stale Wyślij powiadomienia o wszelkich komunikatów ICMP. Ponieważ klient nie istnieje, na liście powiadamiania stale rośnie. Listy nie są czyszczone aż NSI zostanie zatrzymana.

Aby wysłać ping, musisz otworzyć dojścia protokołu ICMP, a następnie użyć tych funkcji pomocnika IP do wysyłania i odbierania danych protokołu ICMP:

Funkcja IcmpCreateFile

Funkcja ICMPCreateFile

Funkcja IcmpSendEcho2Ex

Po aplikacji wysyła polecenie ping, wywołaj funkcję IcmpCloseHandle zamknąć dojście protokołu ICMP.

Scenariusz 2

Programista tworzy aplikację do wysyłania i odbierania komunikatów ICMP przy użyciu interfejsów API IPHlelper. Jeśli tylko jeden uchwyt ICMP służy do wysyłania komunikatów ICMP dla wielu klientów, a jeśli tak, to robi to z bardzo dużą szybkością, interfejs API IPHelper, który jest powiadamiany, gdy wiadomość zostanie odebrana nie może utrzymać prędkość. W takim przypadku można zauważyć, że pamięci usługi NSI nadal gwałtownie rośnie. Ponadto można zauważyć wysokie użycie Procesora przez usługę NSI (nsisvc.dll).

Scenariusz 3

Masz aplikacja lub usługa, która bezpośrednio lub pośrednio używa funkcji pomocnika IP. Aplikacja przestaje lub jest zatrzymana, a to nie przy każdej rejestracji powiadomienie nie jest anulowane (CancelMibChangeNotify2). W tym przypadku serwer NSI trzyma rejestracji czasu dla procesu, który jest zatrzymana. Jeśli istnieje wiele wystąpień zablokowanie aplikacji, usługi NSI ma wielu pokutujących rejestracji. Dla każdej rejestracji jest utrzymywana stanie async RPC i inne informacje. Spowoduje to dodanie do użycia pamięci. Zazwyczaj te rejestracje są wykonane zmianę interfejsu lub zmiana adresu IP emisji pojedynczej. Jeśli nie ma żadnej zmiany w Państwie, te rejestracje są nadal obsługiwane.

Następujące funkcje powiadomień są używane podczas procesu rejestracji:

Przyczyny, że wiele aplikacji nie wywołać (CancelMibChangeNotify2) lub zatrzymać proces omówiono w temacie Funkcja NotifyIpInterfaceChange w witrynie sieci Web Microsoft Developer Network.

Po zarejestrować powiadomienia o zmianie zostanie wywołana Funkcja NotifyIpInterfaceChange , te notyfikacje w dalszym ciągu można wysyłać, dopóki aplikacja wyrejestrowuje do otrzymywania powiadomień o zmianach lub zatrzymywaniu aplikacji. Jeśli aplikacja przestanie działać, system automatycznie wyrejestrowuje każdej rejestracji dla powiadomień o zmianach. Firma Microsoft zaleca, aby skonfigurować aplikacje jawnie wyrejestrować powiadomień o zmianach przed zatrzymaniem.

Dla każdej rejestracji dla powiadomienie o wprowadzeniu także przydzielić trochę pamięci puli niestronicowanej (NPP) dlaNSpc tag.

Przyczyna

Ten problem występuje, ponieważ proces, który rejestruje powiadomienie kończy działanie bez pierwszego Wyrejestrowanie z usługi NSI. W związku z tym przeciek rejestracji w NSI powoduje przeciek pamięci w usłudze NSI. Dodatkowo, NPP przeciek pamięci w NSpc Tag kontekstów NSI Proxy (NSI.dll).

Rozwiązanie

Informacje o poprawce

Obsługiwana poprawka dostępna jest z witryny Microsoft Support. Jednak ta poprawka jest przeznaczona tylko do usunięcia problemu opisanego w tym artykule. Zastosuj poprawkę tylko w systemach, w których występuje problem opisany w tym artykule. Ta poprawka może być wciąż w fazie testowania. Jeśli dany system nie jest poważnie narażony na ten problem, firma Microsoft zaleca, aby poczekać na następną aktualizację oprogramowania zawierającą tę poprawkę.

Jeśli poprawka jest dostępna do pobrania, pojawi się sekcja "Poprawka dostępna do pobrania" na początku tego artykułu z bazy wiedzy Knowledge Base. Jeśli nie ma tej sekcji, skontaktuj się z Obsługą i Wsparciem Klienta Microsoft w celu uzyskania poprawki.

Uwaga Jeśli wystąpią dodatkowe błędy lub konieczność rozwiązania problemu, być może trzeba będzie utworzyć osobne zlecenie usługi. Zwykłe koszty obsługi będą zastosowane do dodatkowych pytań i problemów, których nie można rozwiązać przy użyciu określonej poprawki. Aby uzyskać pełną listę numerów telefonów pomocy technicznej i obsługi klienta firmy Microsoft lub utworzyć osobne zlecenie usługi, odwiedź następujące witryny firmy Microsoft znajdują się:

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

Uwaga "Poprawka dostępna do pobrania" zawiera listę języków, dla których dostępna jest poprawka. Jeśli odpowiedni język nie jest widoczny, to dlatego, że poprawka nie jest dostępna dla danego języka.

Wymagania wstępne

Aby zastosować tę poprawkę, musi mieć dodatek Service Pack 1 dla systemu Windows 7 lub Windows Server 2008 R2 zainstalowany.

Wymagania dotyczące ponownego uruchomienia

Po zastosowaniu tej poprawki należy ponownie uruchomić komputer.

Informacje dotyczące zastępowania poprawek

Ta poprawka nie zastępuje żadnych wcześniej wydanych poprawek.

Informacje dotyczące pliku

Wersja angielskojęzyczna (Stany Zjednoczone) tej poprawki instaluje pliki, których atrybuty wymieniono w poniższych tabelach. Daty i godziny odpowiadające tym plikom są podane w formacie uniwersalnego czasu koordynowanego (UTC, Coordinated Universal Time). Daty i godziny odpowiadające tym plikom na komputerze lokalnym są wyświetlane w formacie czasu lokalnego, wraz z Twoim bieżącym bias czasu letniego (DST). Dodatkowo, daty mogą ulec zmianie podczas wykonywania pewnych operacji na plikach.

Informacje o plikach systemu Windows 7 i Windows Server 2008 R2 i notatki

Ważne Poprawki systemu Windows 7 i Windows Server 2008 R2 są zawarte w tych samych opakowaniach. Jednak poprawki na stronie żądanie poprawki są wymienione w obu systemach operacyjnych. Aby zażądać pakietu poprawek, który dotyczy jednej lub obu systemów operacyjnych, wybierz poprawkę, która jest wyświetlana w obszarze "Windows 7/Windows Server 2008 R2" na stronie. Zawsze sprawdzaj w sekcji „Stosuje się do”, do jakiego systemu operacyjnego dotyczy każda z poprawek.

  • Pliki, które dotyczą określonego produktu, poziomu SR (RTM, SPn) i składnika usługi (LDR, GDR) można zidentyfikować przez sprawdzenie wersji pliku, jak pokazano w poniższej tabeli:

    Wersja

    Produkt

    SR_Level

    Składnik usługi

    6.1.760 0. 16xxx

    Windows 7 i Windows Server 2008 R2

    RTM

    GDR

    6.1.760 1. 22xxx

    Windows 7 i Windows Server 2008 R2

    SP1

    LDR

  • Składniki usługi GDR zawierają tylko te poprawki, które są szeroko rozpowszechnione, dotyczą niezwykle ważnych problemów. Składniki usługi LDR zawierają też inne poprawki, a nie tylko publicznie rozpowszechniane poprawki.

  • Pliki MANIFESTU (manifest) i pliki MUM (mum) instalowane są dla każdego środowiska są wymienione osobno w sekcji "Informacje o dodatkowych plikach dla systemów Windows 7 i Windows Server 2008 R2".

  • Pliki MUM i pliki MANIFESTU oraz skojarzone pliki z wykazu zabezpieczeń (.cat), są bardzo ważne, aby utrzymać stan zaktualizowanych składników. Pliki katalogu zabezpieczeń, których atrybuty nie zostały wymienione, są podpisane za pomocą podpisu cyfrowego firmy Microsoft.

Wszystkie obsługiwane wersje systemu Windows 7 x86

Nazwa pliku

Wersja pliku

Rozmiar pliku

Data

Godzina

Platforma

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

Wszystkie obsługiwane wersje systemów Windows 7 i Windows Server 2008 R2 z procesorami x64

Nazwa pliku

Wersja pliku

Rozmiar pliku

Data

Godzina

Platforma

Nsi.dll

6.1.7600.16385

13,824

14-Jul-2009

01:41

x64

Nsiproxy.sys

6.1.7601.22590

24576

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

Dla wszystkich obsługiwanych wersji systemu Windows Server 2008 R2 z procesorami IA-64

Nazwa pliku

Wersja pliku

Rozmiar pliku

Data

Godzina

Platforma

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

Informacje o dodatkowych plikach dla systemu Windows 7 i Windows Server 2008 R2

Dodatkowe pliki dla wszystkich obsługiwanych wersji systemu Windows 7 z procesorami x86

Nazwa pliku

Package_1_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum

Wersja pliku

Nie dotyczy

Rozmiar pliku

1 822

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

Package_2_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum

Wersja pliku

Nie dotyczy

Rozmiar pliku

1,805

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

Package_3_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum

Wersja pliku

Nie dotyczy

Rozmiar pliku

1 807

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

Package_for_kb2847346_rtm~31bf3856ad364e35~x86~~6.1.1.0.mum

Wersja pliku

Nie dotyczy

Rozmiar pliku

1 459

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

Package_for_kb2847346_sp1~31bf3856ad364e35~x86~~6.1.1.0.mum

Wersja pliku

Nie dotyczy

Rozmiar pliku

1 918

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

X86_dfca12963d5c03edca970b29ad513eb4_31bf3856ad364e35_6.1.7601.22590_none_ff32d7aebbbb6891.manifest

Wersja pliku

Nie dotyczy

Rozmiar pliku

699

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

X86_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_749890603f18301d.manifest

Wersja pliku

Nie dotyczy

Rozmiar pliku

8,301

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:38

Platforma

Nie dotyczy

Dodatkowe pliki dla wszystkich obsługiwanych wersji systemów Windows 7 i Windows Server 2008 R2 z procesorami x 64

Nazwa pliku

Amd64_37e172e525713d1718cb98daea282913_31bf3856ad364e35_6.1.7601.22590_none_9888f3a0165278fe.manifest

Wersja pliku

Nie dotyczy

Rozmiar pliku

1 048

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

Amd64_3839818617f8250fd6f59e35da1df9bd_31bf3856ad364e35_6.1.7601.22590_none_8fbf427f98b0d1cb.manifest

Wersja pliku

Nie dotyczy

Rozmiar pliku

703

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

Amd64_a9af583825031567fe0548a9c2c728ab_31bf3856ad364e35_6.1.7601.22590_none_59ced916edddc9da.manifest

Wersja pliku

Nie dotyczy

Rozmiar pliku

703

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

Amd64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_d0b72be3f775a153.manifest

Wersja pliku

Nie dotyczy

Rozmiar pliku

8,305

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:41

Platforma

Nie dotyczy

Nazwa pliku

Package_1_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum

Wersja pliku

Nie dotyczy

Rozmiar pliku

1,832

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

Package_2_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum

Wersja pliku

Nie dotyczy

Rozmiar pliku

2 237

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

Package_3_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum

Wersja pliku

Nie dotyczy

Rozmiar pliku

2 015

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

Package_4_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum

Wersja pliku

Nie dotyczy

Rozmiar pliku

2,036

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

Package_for_kb2847346_rtm~31bf3856ad364e35~amd64~~6.1.1.0.mum

Wersja pliku

Nie dotyczy

Rozmiar pliku

1 467

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

Package_for_kb2847346_sp1~31bf3856ad364e35~amd64~~6.1.1.0.mum

Wersja pliku

Nie dotyczy

Rozmiar pliku

2,830

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

Wow64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_db0bd6362bd6634e.manifest

Wersja pliku

Nie dotyczy

Rozmiar pliku

4,690

Data (UTC)

05-Feb-2014

Godzina (UTC)

02:16

Platforma

Nie dotyczy

Dodatkowe pliki dla wszystkich obsługiwanych wersji systemu Windows Server 2008 R2 z procesorami IA-64

Nazwa pliku

Ia64_44d491142723affea686ec2fba3cb4ac_31bf3856ad364e35_6.1.7601.22590_none_dc26e555dbabe437.manifest

Wersja pliku

Nie dotyczy

Rozmiar pliku

1 046

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

Ia64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_749a34563f163919.manifest

Wersja pliku

Nie dotyczy

Rozmiar pliku

8,303

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

Package_1_for_kb2847346~31bf3856ad364e35~ia64~~6.1.1.0.mum

Wersja pliku

Nie dotyczy

Rozmiar pliku

2 029

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

Package_for_kb2847346_sp1~31bf3856ad364e35~ia64~~6.1.1.0.mum

Wersja pliku

Nie dotyczy

Rozmiar pliku

1,446

Data (UTC)

05-Feb-2014

Godzina (UTC)

06:35

Platforma

Nie dotyczy

Nazwa pliku

Wow64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_db0bd6362bd6634e.manifest

Wersja pliku

Nie dotyczy

Rozmiar pliku

4,690

Data (UTC)

05-Feb-2014

Godzina (UTC)

02:16

Platforma

Nie dotyczy

Obejście

Aby obejść ten problem, należy użyć jednej z poniższych obejść odpowiednie dla danej sytuacji.

Obejście problemu dla scenariusza 1

Upewnij się, że aplikacji, na przykład ping.exe, nie jest bezprawnie zatrzymane. Zamiast tego, niech poprawnego działania aplikacji zamknięcia.

Alternatywnie uaktualnienie do systemu Windows Server 2012. Ten problem został rozwiązany w systemie Windows Server 2012. Ta poprawka zapobiega usługi NSI wyciek pamięci, niezależnie od tego, w jaki sposób zatrzymać aplikacji.

Obejście problemu dla scenariusza 2

Deweloper oprogramowania powinien utworzyć wielu dojść ICMP do wysyłania żądań protokołu ICMP. Jeśli trzeba wysłać dużą liczbę pakietów ICMP, należy używać gniazd surowych i bezpośrednio wysyłania i odbierania pakietów ICMP przez SUROWE gniazda. Daje to największą wydajność.

Obejście problemu dla scenariusza 3

W tym scenariuszu wyłączenie i włączenie karty sieciowej, użycie pamięci natychmiast zmniejsza się, ale ma krótki kolekcji użycia Procesora.

Dzieje się tak, ponieważ gdy nastąpi zmiana adresu IP lub interfejsu, usługi NSI jest powiadamiany przez jądro. Usługi NSI próbuje następnie powiadomić wszystkich klientów, które są zarejestrowane dla powiadomienia. Gdy usługa próbuje informuj procesu klienta, który nie istnieje, usługi RPC zgłasza błąd. W związku z tym usługi NSI usuwa wszystkie informacje o stanie został zapisany za ten proces klienta. Po zakończeniu tego procesu, że pamięć jest zwolniona.

W takim przypadku zarejestrowanych kilka tysięcy zgłoszeń. Po wystąpieniu zdarzenia, wszystkie pamięci dla tych klientów nieprawidłowy jest zwalniana.

Ten problem został rozwiązany w systemie Windows 8.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×