Dlaczego pula pamięci niestronicowanej rośnie w systemie Windows?

W niektórych przypadkach komputery i serwery z systemem Windows mogą napotykać problemy z brakiem wolnej pamięci spowodowane przeciekaniem sterownika systemu, który przechowuje dane w puli pamięci niestronicowanej. Pula pamięci niestronicowanej (Pamięć niestronicowana) to dane w pamięci RAM komputera używane przez jądro i sterowniki systemu operacyjnego, które nigdy nie są przesyłane na dysk (do pliku wymiany / wymiany), tj. zawsze w pamięci fizycznej.

Bieżący rozmiar puli pamięci niestronicowanej można zobaczyć w menedżerze zadań na karcie Wydajność (Wydajność) w obszarze pamięci (Pamięć) Poniższy zrzut ekranu pokazuje, że prawie cała pamięć na serwerze jest zajęta i większość z niej należy do puli niestronicowanej o wielkości 4,2 GB (puli niestronicowanej / puli niestronicowanej). W stanie normalnym wielkość puli niestronicowanej rzadko przekracza 200–400 MB. Zazwyczaj oznacza to wyciek pamięci w jakimś elemencie systemu lub sterowniku..

po

Przy takim wyczerpaniu pamięci na serwerze komunikaty formularza mogą pojawić się w dzienniku zdarzeń:

Serwer nie mógł przydzielić z systemowej puli niestronicowanej, ponieważ pula była pusta

W zdecydowanej większości przypadków przyczyną opisanego wycieku pamięci jest problem ze sterownikami innych firm zainstalowanymi w systemie. Z reguły są to sterowniki sieciowe. Zwróć uwagę na zachowanie puli podczas pobierania dużych plików (najprawdopodobniej szybko wzrośnie do 128 GB lub 75% pamięci fizycznej w systemach x64). Tylko ponowne uruchomienie pomaga wyczyścić pulę, a jeśli nadal jest to akceptowalne dla komputera domowego, wskazane jest znalezienie normalnego rozwiązania na serwerze przez całą dobę.

Treść

  • Zainstaluj najnowsze sterowniki kart sieciowych
  • Wyłączanie sterownika monitorowania aktywności sieci w systemie Windows
  • Wyłączanie roli Hyper-V
  • Używamy narzędzia Poolmon, aby znaleźć sterownik, który spowodował wyciek pamięci.

Zainstaluj najnowsze sterowniki kart sieciowych

Spróbuj pobrać i zainstalować najnowsze sterowniki kart sieciowych ze strony internetowej producenta.

Jeśli masz włączoną automatyczną aktualizację sterowników, upewnij się, że problemy nie zaczęły się po zainstalowaniu nowych sterowników. Spróbuj cofnąć wersję sterownika do starszej i sprawdź, czy problem się powtarza. Jeśli problem zostanie rozwiązany, wyłącz automatyczne aktualizacje sterowników.

Wyłączanie sterownika monitorowania aktywności sieci w systemie Windows

Dość często przeciek pamięci w puli niestronicowanej jest spowodowany niezgodnością sterownika NDU ze sterownikami karty sieciowej komputera. Tę usługę można wyłączyć bez znacznej utraty funkcjonalności systemu Windows.

Usługę można zatrzymać poleceniem:

sc config NDU start = wyłączone

Lub poprzez rejestr

  1. Otwórz Edytor rejestru regedit.exe
  2. Idź do oddziału HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Ndu \
  3. Zmień wartości parametr Start o 4.

Po wprowadzeniu zmian musisz ponownie uruchomić komputer

Wyłączanie roli Hyper-V

W niektórych przypadkach zainstalowana rola funkcji Hyper-V powoduje wyciek pamięci do puli niestronicowanej. W przypadku, gdy nie jest to potrzebne, zalecamy wyłączenie.

Używamy narzędzia Poolmon, aby znaleźć sterownik, który spowodował wyciek pamięci.

Jeśli metody opisane powyżej nie pomogły, możesz spróbować dowiedzieć się, który konkretny sterownik spowodował wyciek pamięci w puli niestronicowanej.

W tym celu potrzebujemy narzędzia konsoli Poolmoon.exe, zawarte w zestawie rozwojowym Zestaw sterowników Windows (WDK). Z witryny MSFT pobierz i zainstaluj WDK dla swojej wersji systemu Windows i uruchom narzędzie Poolmon.exe (w WDK dla Windows 10 narzędzie znajduje się w C: \ Program Files (x86) \ Windows Kits \ 10 \ Tools \.

Po uruchomieniu narzędzia naciśnij klawisze P.. W drugiej kolumnie pozostaną procesy znaczników, które wykorzystują pamięć nie wymienną (atrybut Nonp), a następnie przez naciśnięcie B., posortujmy kolumnę według bajtów.

W naszym przykładzie widzimy, że większość pamięci RAM w puli niestronicowanej używa sterowników ze znacznikami Nr22, ConT i smNp.

Możesz znaleźć określone pliki sterowników powiązane z tymi procesami za pomocą poleceń:

findstr / m / l / s Nr22% Systemroot% \ System32 \ drivers \ *. sys
findstr / m / l / s ConT% Systemroot% \ System32 \ drivers \ *. sys
findstr / m / l / s smNp% Systemroot% \ System32 \ drivers \ *. sys

Dlatego otrzymaliśmy listę plików sterowników, które mogą powodować problem. Teraz po nazwach plików musisz określić, z którymi sterownikami i komponentami systemu się odnoszą. Możesz do tego użyć narzędzia. sigcheck z sysinternals.

sigcheck C: \ Windows \ System32 \ drivers \ rdyboost.sys

Narzędzie zwraca nazwę, opis i wersję sterownika.

Teraz możesz spróbować usunąć / zaktualizować / ponownie zainstalować problemowy sterownik lub usługę.
Ten podręcznik dotyczy zarówno Windows Server 2008-2016, jak i klienta Windows 10, 8 i 7..