Objawy
Załóżmy, że masz komputer z systemem Windows Server 2008 Service Pack 2 (SP2) w wersji x86. Użycie przez system wpisów tabeli stron (PTE) jest wysoka. W tej sytuacji system wirtualnej przestrzeni adresowej staje się wyczerpany i daleko idącej fragmentacji.Uwagi
-
Gdy ten problem wystąpi, system staje się niestabilny.
-
Ten problem jest spowodowany przez wzorzec określonej alokacji, który jest rzadko obserwowane w sterownikach. Aby uzyskać więcej informacji na temat tego przydziału określonego wzorca przejdź do sekcji "Przyczyna". Zebrać pliku zrzutu, gdy komputer jest w stanie niestabilnym, a następnie skontaktuj się z działu obsługi klienta firmy Microsoft do analizy.
-
Aby uzyskać informacje o fragmentacji adresu wirtualnego systemu i wpisy PTE systemu, należy wykonać jedną z następujących czynności:
-
Ustanowić sesję debugowania na żywo w trybie jądra.
-
Ustanowić sesję debugowania lokalnego w trybie jądra.
-
Zebrać pliki zrzutu w trybie jądra.
Następujące polecenia debugera jądra służy do ustanawiania sesji i uzyskać informacje:
-
Uruchom następujące polecenie, aby wyświetlić łączna ilość dostępnego miejsca, największy blok pamięci i ilość pamięci, który jest używany przez różne zasoby pamięci jądra (takich jak pule i PTE):
!vm 21 Komunikat, który jest zwracany przez polecenie podobne do następującego:
14: kd> !vm 21*** Virtual Memory Usage *** Physical Memory: 4191796 ( 16767184 Kb) Page File: \??\C:\pagefile.sys Current: 17408000 Kb Free Space: 17362464 Kb Minimum: 17408000 Kb Maximum: 17408000 Kb Available Pages: 980816 ( 3923264 Kb) ResAvail Pages: 4005065 ( 16020260 Kb) Locked IO Pages: 0 ( 0 Kb) Free System PTEs: 55716 ( 222864 Kb) Modified Pages: 24737 ( 98948 Kb) Modified PF Pages: 24356 ( 97424 Kb) NonPagedPool Usage: 51445 ( 205780 Kb) NonPagedPool Max: 522998 ( 2091992 Kb) PagedPool 0 Usage: 169861 ( 679444 Kb) PagedPool 1 Usage: 24692 ( 98768 Kb) PagedPool 2 Usage: 19764 ( 79056 Kb) PagedPool 3 Usage: 19469 ( 77876 Kb) PagedPool 4 Usage: 20109 ( 80436 Kb) PagedPool Usage: 253895 ( 1015580 Kb) PagedPool Maximum: 523264 ( 2093056 Kb) Session Commit: 12273 ( 49092 Kb) Shared Commit: 37334 ( 149336 Kb) Special Pool: 0 ( 0 Kb) Shared Process: 22380 ( 89520 Kb) Pages For MDLs: 1 ( 4 Kb) PagedPool Commit: 253895 ( 1015580 Kb) Driver Commit: 3829 ( 15316 Kb) Committed pages: 3862488 ( 15449952 Kb) Commit limit: 8507657 ( 34030628 Kb) VA Type CurrentUse Peak Limit Failures Unused 130 Mb 0 Mb OPEN 0 SessionSpace 60 Mb 66 Mb OPEN 0 ProcessSpace 16 Mb 0 Mb OPEN 0 BootLoaded 26 Mb 0 Mb OPEN 0 PfnDatabase 118 Mb 248 Mb OPEN 0 NonPagedPool 208 Mb 210 Mb OPEN 0 PagedPool 1096 Mb 1096 Mb OPEN 0 SpecialPool 0 Mb 0 Mb OPEN 0 SystemCache 140 Mb 992 Mb OPEN 0 SystemPtes 214 Mb 222 Mb OPEN 0 Hal 4 Mb 0 Mb OPEN 0 SessionGlobal 12 Mb 12 Mb OPEN 0 Driver Images 24 Mb 0 Mb OPEN 0 NPSpecialPool 0 Mb 0 Mb OPEN 0 ProtoPTE Pool 0 Mb 0 Mb OPEN 0 Maximum contiguous unused VA: 8 Mb
-
Uruchom następujące polecenie, aby wyświetlić informacje o wpisy PTE systemu:
!sysptes 1 Informacje te obejmują numer i rozmiar bloków wolnych. Komunikat, który jest zwracany przez polecenie podobne do następującego:
14: kd> !sysptes 1System PTE Information Total System Ptes 88048 starting PTE: c0400000 free ptes: c0402c80 number free: 1. free ptes: c0402ca8 number free: 1. free ptes: c0408020 number free: 3. free ptes: c0408098 number free: 4. . . . 3755 entries cut . . . free ptes: c07ddd30 number free: 13. free ptes: c07dddd8 number free: 4. free ptes: c07dde18 number free: 4. free ptes: c07dde58 number free: 1. free ptes: c07dde80 number free: 26. free ptes: c07ddf70 number free: 10. free blocks: 3763 total free: 22432 largest free block: 89
Kiedy występuje problem, który opisano w sekcji "Symptomy", wskaźnik "CurrentUse", który jest zwracany przez ! vm 21 polecenia zwiększa się w czasie dla kategorii "SystemPtes". W tym samym czasie rozdrobnienie PTE systemu mogą być obserwowane przez wyświetlanie wartości "wolnych bloków", jest zwracana przez ! sysptes 1 polecenia w czasie.Wyczerpanie i rozdrobnienie jądra dostępnej wirtualnej przestrzeni adresowej może być zdiagnozowane obserwując wartości "Nieużywany" i "Maksimum ciągły nieużywane VA" zwracanych przez ! vm 21 polecenia.W plikach zrzutu trybu jądra nie mogą być obserwowane zmiany parametrów w czasie.
-
Przyczyna
Ten problem występuje, ponieważ kod trybu jądra lub sterownik urządzenia przydziela i zwalnia buforów pamięci (bufory We/Wy). Tego rodzaju bufory są implementowane przy użyciu wpisy PTE systemu. Gdy dużych alokacji, który złożono wniosek nie jest wielokrotnością liczby 2 megabajtów (MB), Fragmentacja występuje w ramach obszaru wpisy PTE systemu.
Rozwiązanie
Informacje o poprawce
Po zainstalowaniu tej poprawki algorytmu alokacji jest zoptymalizowany do zmniejszenia fragmentacji, gdy wystąpi wzór alokacji określonej w jeden lub więcej sterowników jądra. Żądanie mapowania PTE systemu, który jest większy niż 2 MB jest zaokrąglana do wielokrotności 2 MB w celu zmniejszenia fragmentacji.Obsługiwana poprawka jest udostępniana przez firmę Microsoft. 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 działu obsługi klienta firmy Microsoft lub utworzyć osobne zlecenie usługi odwiedź następujące witryny firmy Microsoft:
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ę, zostanie uruchomiony system Windows Server 2008 z dodatkiem SP2.Aby uzyskać więcej informacji dotyczących sposobu uzyskiwania dodatku service pack dla systemu Windows Server 2008, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
Jak uzyskać najnowszy dodatek service pack dla systemu Windows Server 2008
Informacje dotyczące rejestru
Aby zastosować tę poprawkę, nie trzeba wprowadzać żadnych zmian w rejestrze.
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 wcześniej wydanej poprawki.
Wersja globalna 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 w systemie Windows Server 2008Ważne Poprawki systemu Windows Vista i Windows Server 2008 są zawarte w tych samych opakowaniach. Jednak tylko "Windows Vista" znajduje się na stronie żądanie poprawki. Aby zażądać pakietu poprawek, który dotyczy jednej lub obu systemów operacyjnych, wybierz poprawkę, która jest wyświetlana w obszarze "Windows Vista" 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:
-
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 Server 2008". Pliki MUM i pliki MANIFESTU oraz skojarzone zabezpieczeń pliki wykazu (.cat), są bardzo ważne dla utrzymania stanu zaktualizowanego składnika. Pliki katalogu zabezpieczeń, których atrybuty nie zostały wymienione, są podpisane za pomocą podpisu cyfrowego firmy Microsoft.
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.
Więcej informacji
Aby uzyskać więcej informacji dotyczących terminologii aktualizacji oprogramowania, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
Opis standardowej terminologii używanej do opisywania aktualizacji oprogramowania firmy Microsoft
Informacje o dodatkowych plikach dla systemu Windows Server 2008
Dodatkowe pliki dla wszystkich obsługiwanych wersji systemu Windows Server 2008 x86