Ograniczanie stronicowania pamięci puli buforów w 64-bitowej wersji programu SQL Server 2005

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 918483
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

WPROWADZENIE

W określonych okolicznościach działający zestaw roboczy procesu programu Microsoft SQL Server 2005 w wersji 64-bitowej może ulec stronicowaniu przez system Microsoft Windows. Takie zachowanie może powodować obniżenie wydajności programu SQL Server w wersji 64-bitowej. Firma Microsoft zidentyfikowała przyczynę tego zjawiska. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
905865 Rozmiary zestawów roboczych wszystkich procesów w sesji konsoli mogą zostać przycięte po zalogowaniu się do komputera z systemem Windows Server 2003 bądź wylogowaniu z niego przy użyciu usług terminalowych
Komputery z działającym systemem Windows Server 2003 mogą zachowywać się zbyt agresywnie podczas zapisu danych z brudnych buforów podręcznych, jeśli jednocześnie jakaś inna aplikacja wykonuje operację buforowania We/Wy, np. kopiowanie pliku. Takie zachowanie może powodować ograniczenie wydajności zestawu roboczego programu SQL Server. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
920739 Podczas kopiowania plików większych niż 500 megabajtów (MB) w systemie Windows Server 2003 z dodatkiem SP1 lub Windows Server 2003 z dodatkiem SP2 może występować obniżenie ogólnej wydajności systemu
Na komputerze z działającym programem SQL Server aplikacje mogą zbyt mocno obciążać pamięć podręczną. Dlatego system operacyjny będzie ograniczać wydajność zestawu roboczego programu SQL Server lub innych aplikacji. Jeśli użytkownik zauważy, że aplikacja zbyt intensywnie korzysta z pamięci podręcznej, można użyć niektórych funkcji zarządzania pamięcią dostępnych w aplikacji. Funkcje te kontrolują przestrzeń pamięci podręcznej systemu używaną przez operacje We/Wy na plikach w aplikacji. Można na przykład użyć funkcji SetSystemFileCacheSize i GetSystemFileCacheSize do sterowania pamięcią podręczną systemu używaną przez operacje We/Wy na plikach.

Uwaga: W systemach 64-bitowych program SQL Server 2005 Enterprise Edition jest jedynym programem, który umożliwia blokowanie stron w pamięci.
Ponadto urządzenia producentów zewnętrznych obsługujące funkcję MmAllocateContiguousMemory i określające wartość parametru HighestAcceptableAddress poniżej 4 gigabajtów (GB) mogą także powodować ograniczenie wydajności zestawu roboczego programu SQL Server 2005 w wersji 64-bitowej.

Aby zapobiegać stronicowaniu pamięci puli buforów w programie SQL Server 2005 w wersji 64-bitowej przez pamięć fizyczną, można włączyć uprawnienia blokowania stron w pamięci.

Więcej informacji

Określanie strony pamięci używanej przez program SQL Server 2005 w wersji 64-bitowej

Stronę pamięci używaną przez program SQL Server 2005 w wersji 64-bitowej można wyświetlić za pomocą Monitora wydajności. W tym celu należy monitorować następujący licznik wydajności:
Obiekt wydajności: Pamięć
Licznik: Strony/Sekundy

Aby uzyskać dodatkowe informacje dotyczące sposobu korzystania z tego licznika do ustalania strony pamięci, kliknij następujący numer artykułu, aby wyświetlić ten artykuł z bazy wiedzy Microsoft Knowledge Base:
889654 Określanie odpowiedniego rozmiaru pliku stronicowania dla 64-bitowej wersji systemu Windows Server 2003 lub systemu Windows XP
Można także zmierzyć efekt stronicowania w programie SQL Server 2005 w wersji 64-bitowej, monitorując następujące liczniki wydajności:
Obiekt wydajności: Proces
Licznik: Bajty prywatne
Wystąpienie: sqlservr

Obiekt wydajności: Proces
Licznik: Zestaw roboczy
Wystąpienie: sqlservr
Licznik Bajty prywatne mierzy ilość aktualnie przypisanej pamięci. Licznik Zestaw roboczy mierzy ilość pamięci fizycznej używanej przez proces w danym momencie. Program SQL Server 2005 w wersji 64-bitowej używa także następującego licznika do określania ilości pamięci przydzielanej przez pulę buforów:
Obiekt wydajności: SQL Server:Memory Manager
Licznik: Łączna ilość pamięci serwera (KB).

Uwaga: W przypadku nazwanych instalacji programu SQL Server 2005 w wersji 64-bitowej nazwą obiektu wydajności jest MSSQL$InstanceName: Memory Manager.
Jeśli wartość licznika Zestaw roboczy jest niższa od wartości licznika Łączna ilość pamięci serwera (KB), oznacza to, że przynajmniej część puli buforów została wycofana z zestawu roboczego programu SQL Server.

Blokowanie stron w pamięci w 64-bitowej instalacji programu SQL Server

W 64-bitowej wersji programu SQL Server 2005 można poprawić wydajność, blokując pamięć zarezerwowaną dla puli buforów w pamięci fizycznej. Aby uruchomić tę funkcję w programie SQL Server w wersji 64-bitowej, trzeba włączyć uprawnienia Blokowanie stron w pamięci na koncie startowym programu SQL Server. Po włączeniu tej opcji trzeba ponownie uruchomić komputer. Aby to zrobić, wykonaj następujące kroki:
  1. Kliknij przycisk Start, kliknij polecenie Uruchom, wpisz gpedit.msc, a następnie kliknij przycisk OK. Zostanie wyświetlone okno Zasady grupy.
  2. W lewym okienku rozwiń węzeł Konfiguracja komputera, a następnie rozwiń węzeł Ustawienia systemu Windows.
  3. Rozwiń węzeł Ustawienia zabezpieczeń, a następnie rozwiń węzeł Zasady lokalne.
  4. Kliknij pozycję Przypisywanie praw użytkownika. Zasady będą widoczne w prawym okienku.
  5. W prawym okienku kliknij dwukrotnie uprawnienie Blokowanie stron w pamięci.
  6. W oknie dialogowym Właściwości: Blokowanie stron w pamięci kliknij opcję Dodaj użytkownika lub grupę.
  7. W oknie dialogowym Wybieranie: Użytkownicy lub Grupy dodaj konto z uprawnieniami uruchamiania pliku Sqlserver.exe, a następnie kliknij przycisk OK.
  8. Zamknij okno Zasady grupy, a następnie uruchom ponownie usługę SQL Server.
Po ponownym uruchomieniu usługi SQL Server cała pamięć zarezerwowana dla puli buforów nie będzie dostępna dla stronicowania w systemie Windows. Pula buforów zachowuje zdolność reakcji na zdarzenia powiadomień o zasobach pamięci i dynamicznego wzrostu lub redukcji w reakcji na te zdarzenia. Rezerwacje zablokowane w pamięci nie będą widoczne w żadnej z następujących lokalizacji:
  • Liczniki Bajty prywatne i Zestaw roboczy w Monitorze wydajności
  • Kolumna Użycie pamięci na karcie Procesy w Menedżerze zadań systemu Windows
Te liczniki odzwierciedlają rezerwacje wykonane wewnątrz procesu SQL Server 2005, gdy nie są one związane z pulą buforów. Licznik wydajności Łączna ilość pamięci serwera (KB) obiektu SQL Server:Memory Manager będzie dokładnie odzwierciedlał ilość pamięci zarezerwowanej dla puli buforów.

W programie SQL Server 2005 z dodatkiem Service Pack 2 (SP2) lub w nowszych wersjach programu SQL Server 2005, jeśli zestaw roboczy procesu SQL Server 2005 jest stronicowany w systemie Windows, w dzienniku błędów programu SQL Server rejestrowane są następujące wiadomości:
Komunikat o błędzie 1
2007-01-23 16:30:10.14 spid1s Znaczna część pamięci procesu SQL Server uległa stronicowaniu. W efekcie może nastąpić spadek wydajności. Czas trwania: 0 sekund. Zestaw roboczy (KB): 1086400, zatwierdzone (KB): 2160928, użycie pamięci: 50%.
Komunikat o błędzie 2
2007-01-23 16:35:26.52 spid1s Znaczna część pamięci procesu SQL Server uległa stronicowaniu. W efekcie może nastąpić spadek wydajności. Czas trwania: 315 sekund. Zestaw roboczy (KB): 410156, zatwierdzone (KB): 2201296, użycie pamięci: 18%.
Komunikat o błędzie 3
2007-01-23 16:40:54.12 spid1s Znaczna część pamięci procesu SQL Server uległa stronicowaniu. W efekcie może nastąpić spadek wydajności. Czas trwania: 646 sekund. Zestaw roboczy (KB): 901904, zatwierdzone (KB): 2215752, użycie pamięci: 40%.
Uwaga: Te komunikaty o błędach są dostępne zarówno w 32-bitowej, jak i 64-bitowej wersji programu SQL Server 2005.

Te komunikaty są generowane, gdy zestaw roboczy procesu SQL Server 2005 osiąga 50 procent pamięci zatwierdzonej dla tego procesu. Za pomocą tych komunikatów można więc określić sytuację, w której wydajność programu SQL Server 2005 znacznie spada, ponieważ system Windows ogranicza zestaw roboczy procesu SQL Server 2005. Ponadto komunikaty te są zapisywane co 5 minut w pierwszych 30 minutach. Po upływie pierwszych 30 minut częstotliwość tych komunikatów podwaja się aż do osiągnięcia maksymalnej wartości 1 dnia. Zwróć uwagę na wartości procentowe użycia pamięci zawarte w tych komunikatach. Są one obliczane według następującego równania:
Procent użycia pamięci = (Zestaw roboczy / Zatwierdzona pamięć) * 100
Aby zbadać wartość procentową, można także uruchomić następującą instrukcję:
SELECT *
FROM sys.dm_os_ring_buffers
WHERE ring_buffer_type = 'RING_BUFFER_RESOURCE_MONITOR'

Właściwości

Numer ID artykułu: 918483 - Ostatnia weryfikacja: 15 lutego 2011 - Weryfikacja: 8.3
Słowa kluczowe: 
kbsqlmanagementtools kbsql2005engine kbexpertiseadvanced kbinfo KB918483

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com