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ć.

Symptomy

Problemy z wydajnością w aplikacjach i usługach w różnych wersjach systemów Windows XP, Windows Vista, Windows Server 2003, Windows Server 2008 i Windows Server 2008 R2. Ponadto można zauważyć następujące symptomy:

  • Dostępna pamięć jest prawie wyczerpana.

  • System, pamięć podręczna (cache) plików zużywa większość fizycznej pamięci RAM.

  • Istnieje ciągła i duża liczba żądań odczytu z pamięci podręcznej na dysk twardy.

Przyczyna

Zarządzanie pamięcią w systemach operacyjnych Microsoft Windows korzysta z algorytmu opartego na potrzebie. Jeśli którykolwiek proces żąda i używa dużej ilości pamięci, rozmiar zestawu roboczego (liczba stron pamięci w fizycznej pamięci RAM) procesu zwiększa się. Jeśli te żądania są ciągłe i niezaznaczone, zestaw roboczy procesu będzie rozrastał się w celu zużywania całej fizycznej pamięci RAM. W takiej sytuacji zestawy robocze dla wszystkich pozostałych procesów są stronicowane na dysku twardym. To działanie zmniejsza wydajność aplikacji i usług, ponieważ strony pamięci są stale zapisywane na dysku twardym i odczytywane z dysku twardego.

To zachowanie dotyczy również zestawu roboczego systemu pamięć podręczna (cache) plików. Jeśli istnieje ciągła i duża liczba żądań odczytu z pamięci podręcznej z dowolnego procesu lub dowolnego sterownika, rozmiar zestawu pamięć podręczna (cache) plików będzie się rozrastać, aby spełnić to żądanie. System, pamięć podręczna (cache) plików zużyje fizycznej pamięci RAM. Z tego powodu w innych procesach nie jest dostępna wystarczająca ilość fizycznej pamięci RAM.

W 32-bitowych wersjach systemów operacyjnych Microsoft Windows starszych niż Windows Vista zestawy robocze systemu pamięć podręczna (cache) plików mają ograniczenie pamięci do mniej niż 1 gigabajta (GB). Ograniczenie wirtualnego zakresu adresów uniemożliwia wyczerpanie fizycznej pamięci RAM przez pamięć podręczna (cache) plików systemu.

W 32-bitowych wersjach systemów operacyjnych Windows Vista zasoby kernelu są przydzielane dynamicznie. Zestaw roboczy zestawu funkcji pamięć podręczna (cache) plików zwiększa się, aby korzystać z wirtualnego zakresu adresów trybu kernela kosztem innych zasobów kernelu. Ograniczenie tego zakresu pamięci jest mniejsze niż 2 GB. Jeśli komputer ma więcej niż 2 GB fizycznej pamięci RAM, pamięć podręczna nie może wyczerpania całej fizycznej pamięci RAM. Jednak pamięć podręczna może wyczerpić wirtualną przestrzeń adresową w jądrze. Może to powodować błędy alokacji innych składników kernelu.

W 64-bitowych wersjach systemów operacyjnych Windows rozmiar wirtualnego zakresu adresów jest zazwyczaj większy niż fizyczna pamięć RAM. W takiej sytuacji zestaw roboczy dla systemu pamięć podręczna (cache) plików może zwiększyć się do zużywania większości fizycznej pamięci RAM.

Rozwiązanie

Algorytmy zarządzania pamięcią w systemach operacyjnych Windows 7 i Windows Server 2008 R2 zostały zaktualizowane w celu rozwiązania wielu problemów z buforowaniem plików, które zostały znalezione we wcześniejszych wersjach systemu Windows. Istnieją tylko pewne unikatowe sytuacje, w których trzeba zaimplementować tę usługę na komputerach z systemem Windows 7 lub Windows Server 2008 R2.

Jak ustalić, czy dotyczy to systemu

Aby ustalić, czy ten problem dotyczy systemu, zainstaluj narzędzie SysInternals RamMap. Narzędzie można uzyskać z następującej witryny internetowej systemu Windows Sysinternals:

http://technet.microsoft.com/en-us/sysinternals/ff700229
Po uruchomieniu narzędzia wybierz opcję Użyj liczników. Zostanie wyświetlonych kilka kolumn, w których jest wyświetlany bieżący wzorzec użycia pamięci. Kliknij kolumnę Aktywne, aby posortować dane według użytej liczby bajtów, i zwróć uwagę na pierwsze użycie bezpośrednio poniżej sumy.

Jeśli najważniejsze użycie to "Metaplik" i jeśli jest używana duża część dostępnej pamięci, występuje problem z pamięcią podręczną plików systemowych opisany w sekcji "Objawy". Można to sprawdzić za pomocą Monitora wydajności w celu monitorowania licznika Pamięci\System Cache Resident Bytes i ciągłego powiększania się pamięci podręcznej z czasem.

Rysunek 1. Przykład danych wyjściowych protokołu RamMap, w których występuje problem na komputerze.


tekst alternatywny
Rysunek 2. Przykład danych wyjściowych protokołu RamMap, w przypadku których problem nie występuje na komputerze.


tekst alternatywny
Jeśli licznik pamięci\Pamięci podręcznej rezydentnych bajtów w Monitorze wydajności pokazuje trend wzrostowy, ten problem występuje na komputerze, jak pokazano na rysunku 3.

Rysunek 3. Przykład danych wyjściowych Monitora wydajności, w których komputer występuje problem z czasem.

tekst alternatywny

Wymagania dotyczące ponownego uruchamiania

Nie musisz ponownie uruchamiać komputera podczas instalowania, odinstalowywania ani używania tej usługi.

Jeśli czytasz ten artykuł, ponieważ współpracujesz z klientem, który uważa, że ten problem dotyczy go, wykonaj poniższe czynności, aby rozwiązać ten problem.

  1. Sprawdź, czy dane wyjściowe, dane perfmon i poolmon klienta potwierdzają, że pamięć podręczna plików systemowych zużywa większość fizycznej pamięci RAM, jak opisano wcześniej.

  2. Aby uzyskać usługę Windows Dynamic Cache, pobierz ją tutaj.

  3. Niektóre ustawienia rejestru pamięci podręcznej dynamicznej są następujące:

    Warto wypróbować 1 GB na serwerach plików.
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:00000400
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

    W programie Exchange 2007 może być konieczne wypróbowanie 500 MB:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:000001F4
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

    W wersji SQL 2005 lub wyższej w przeszłości podczas pracy z programem SQL EE używaliśmy 2 GB:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:000007D0
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

Więcej informacji

Aby omiąć ten problem, użyj funkcji API GetSystemFileCacheSize i funkcji API SetSystemFileCacheSize w celu ustawienia maksymalnej lub minimalnej wartości rozmiaru zestawów roboczych systemu pamięć podręczna (cache) plików. Użycie tych funkcji jest jedyną obsługiwaną metodą ograniczenia zużycia pamięci fizycznej przez system pamięć podręczna (cache) plików.

Usługa dynamicznej pamięci podręcznej systemu Microsoft Windows to przykładowa usługa, która przedstawia jedną ze strategii używania tych interfejsów API w celu zminimalizowania efektów tego problemu.

Zainstalowanie i używanie usługi Microsoft Dynamic Cache Service nie powoduje wykluczenia obsługi systemu Microsoft Windows. Ta usługa i jej kod źródłowy są podane jako przykład użycia obsługiwanych interfejsów API firmy Microsoft w celu zmniejszenia wzrostu pamięci podręcznej systemu plików.

Usługę i kod źródłowy można uzyskać z następującej witryny internetowej firmy Microsoft:

http://www.microsoft.com/download/details.aspx?FamilyID=e24ade0a-5efe-43c8-b9c3-5d0ecb2f39af&displaylang=pl

Dodatkowe zasoby

Przeczytaj rozdziały 9 (Zarządzanie pamięcią) i 10 (Menedżer pamięci podręcznej) wewnętrznych systemów Windows (5. wersja).

WPIS w blogu POŚWIĘCONY ZARZĄDZANIU PAMIĘCIĄ (PROBLEMY Z PAMIĘCIĄ PODRĘCZNĄ DUŻYCH SYSTEMÓW)

Wpis w blogu z problemami z powolną dużą kopią pliku

Limity pamięci dla wersji systemu Windows

976618 Problemy z wydajnością w aplikacjach i usługach są odczuwane, gdy system pamięć podręczna (cache) plików zużywa większość fizycznej pamięci RAM 918483 Jak zmniejszyć liczbę stronicowania pamięci puli buforów w 64-bitowej wersji programu SQL Server 895932 Things przed włączeniem trybu pamięci podręcznej systemu w systemie Windows XP 232271 Jak zoptymalizować system Windows NT Server za pomocą rejestru 837331 Menedżer pamięci podręcznej w systemie





Windows

Server 2003

http://technet2.microsoft.com/windowsserver/en/library/EFA621BD-A031-4461-9E72-59197A7507B61033.mspx

LargeSystemCache TechNet Topic

RamMap — wpis w blogu 

Stan

Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych w sekcji "Dotyczy".

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ę!

×