it-swarm.dev

Zalecany rozmiar pliku strony dla SQL 2008R2 w Windows 2008R2

Ten artykuł Microsoft - Jak określić odpowiedni rozmiar pliku strony dla 64-bitowych wersji systemu Windows Server 2008 i Windows 2008 R2 zawiera wskazówki dotyczące obliczania rozmiaru pliku strony dla 64-bitowego systemu Windows 2008 i Windows 2008R2. To bez wątpienia działa dobrze w przypadku serwerów ogólnego przeznaczenia. Zastanawiam się, jakie są wytyczne dla SQL Server 2008R2 uruchomionego na 64-bitowym systemie Windows 2008/R2?

Przypuszczam, że chcemy, aby tak mało danych w pamięci uderzało w plik strony, w przeciwnym razie SQL mógłby uderzać dwukrotnie w dysk o dane. Czy SQL Server pozwala nawet danych w pamięci na trafienie do pliku strony ? Przeszukiwałem SQL Server 2008 R2 Books Online w celu uzyskania wskazówek, ale nie znalazłem jeszcze żadnej wzmianki o używaniu plików stronicowania.

Oto potencjalny scenariusz użycia: Biorąc pod uwagę fizyczny serwer z 64 GB pamięci RAM, czy plik stronicowania jest niezbędny dla całego 64 GB pamięci RAM? Czy powinniśmy go przygotować na 96 GB pliku strony? To wydaje się nieco przesadne w przypadku pojedynczego pliku. Wiem, że konwencjonalna mądrość głosi, że system Windows łączy plik stronicowania z pamięcią, aby ułatwić wymianę aplikacji na pamięci RAM, ale czy to prawda? Czy plik stronicowania o pojemności mniejszej niż 64 GB utrudni wydajność?

25
Kev

Nie ma specjalnych ustawień dla SQL Server, który normalnie używa pamięci fizycznej

Po prostu zrób to, co mówią MS dla Windows i to wszystko

Aha, i kup więcej RAM i tak, skoro jesteśmy jednym tematem ... ;-)

15
gbn

Zajrzyj do lock pages in memory. W ten sposób możesz dać pierwszeństwo, aby twoje konto usługi SQL używało dostępnego RAM zamiast stronicowania na dysk. Aby przeczytać więcej na temat blokowanych stron w pamięci, sprawdź to link Fragment kodu wygląda następująco:

Opcja Zablokuj strony w pamięci zasad systemu Windows jest domyślnie wyłączona. To uprawnienie musi być włączone, aby skonfigurować rozszerzenia okna (AWE). Ta zasada określa, które konta mogą wykorzystywać proces do przechowywania danych w pamięci fizycznej, zapobiegając stronicowaniu danych do pamięci wirtualnej na dysku przez system. W 32-bitowych systemach operacyjnych ustawienie tego uprawnienia, gdy AWE nie jest używane, może znacznie obniżyć wydajność systemu. Blokowanie stron w pamięci nie jest wymagane w 64-bitowych systemach operacyjnych.

Przetestuj tę funkcję przed użyciem w swoich systemach.

6
StanleyJohns

Tak, dla 64 GB RAM potrzebujesz co najmniej najmniej pliku wymiany 64 GB (zalecane 96 GB). Nie z powodu potencjalnej zamiany, ale z powodu konstrukcji Menedżera pamięci systemu Windows. Pisałem o tym problemie wcześniej w Rozmiar pliku strony systemowej na komputerach z dużą pamięcią RAM :

Gdy proces poprosi o MEM_COMMIT pamięć przez VirtualAlloc/VirtualAllocEx, żądany rozmiar należy zarezerwować w pliku stronicowania. Było to prawdą w pierwszym systemie Win NT i nadal jest prawdą do dziś patrz Zarządzanie pamięcią wirtualną w Win32 :

Po zatwierdzeniu pamięci fizyczne strony pamięci są przydzielane, a miejsce jest rezerwowane w pliku stronicowania.

Alternatywą byłoby coś takiego jak oom_killer .

Postępuj zgodnie z zaleceniami, czasami rzeczy są nieco bardziej skomplikowane niż się wydaje. I nawet nie dotknąłem komplikacji spowodowanych przez AWE i przywileju blokowania stron ...

4
Remus Rusanu