Nowości w SQL Server 2014 CTP1 – Buffer Pool Extension   Udostępnij na: Facebook

Autor: Cezary Ołtuszyk

Opublikowano: 2013-08-28

Nowości w SQL Server 2014 CTP1 – Buffer Pool Extension

Większość administratorów baz danych zdaje sobie sprawę jak ważna jest odpowiednia ilość pamięci RAM na serwerze, oraz jak zwiększenie ilości pamięci dostępnej dla instancji przekłada się na wzrost jej osiągów wydajnościowych.

Jedną z nowości, która ma się znaleźć w SQL Server 2014 jest możliwość zwiększenia wielkości puli buforów (w której przechowujemy najczęściej używane przez SQL Server dane), tak aby nie tylko używała pamięci RAM lecz również przestrzeni dostępnej na dyskach SSD.

Na obrazku poniżej można zobaczyć jak wygląda architektura nowego rozwiązania:

Zaznaczony na szaro Buffer Pool L1 jest standardową pulą zawartą w pamięci RAM Serwera. Buffer Pool L2 jest nową pulą przechowywaną w wybranej lokalizacji na dysku. Tym w jaki sposób dane mają być buforowane (w puli L1, czy w puli L2) zarządza Manager Buforów.

Ograniczenia Buffer Pool Extension:

  • Potrzebujemy SQL Server 2014 Enterprise 64bit
  • Maksymalna pamięć RAM instancji nie może przekraczać 128GB
  • Maksymalna wielkość pliku z buforem nie może być większa niż 32x128GB

 

Jak korzystać z Buffer Pool Extension?

Stworzenie dodatkowej puli buforowej jest możliwe za pomocą instrukcji ALTER SERVER CONFIGURATION:

ALTERSERVER CONFIGURATION SETBUFFER POOL EXTENSION ON(FILENAME = 'S:\BUFOR_SSD\dodatkowy_bufor.bpe', SIZE = 16GB)

Opcja FILENAME wskazuje na wybrane przez nas miejsce na dysku, a SIZE określa wielkość dodatkowego buforu.

Wyłączenie puli buforów wygląda podobnie, lecz zamiast opcji ON używamy OFF:

ALTERSERVER CONFIGURATIONSETBUFFER POOL EXTENSION OFF

Zmiana parametrów związanych z wielkością i miejscem przechowywani pliku buforowego polega na wyłączeniu, a następnie włączeniu puli buforów ze zmienionymi wartościami FILENAME  oraz SIZE.

Jak uzyskać informacje na temat rozszerzonej puli buforów na serwerze?

Podstawowymi źródłami informacji na temat konfiguracji rozszerzonej puli buforów oraz jej wykorzystania przez serwer są następujące widoki dynamiczne:

Pierwszy z nich (sys.dm_os_buffer_pool_extension_configuration) zwraca informacje konfiguracyjne, takie jak lokalizacja i wielkość pliku buforowego:

Drugi (sys.dm_os_buffer_descriptors), znany z poprzednich edycji SQL Server-a, pokazuje jakie dane znajdują się w cache-u badanej instancji. Został on wzbogacony o nową kolumnę o nazwie „is_in_bpool_extension”, gdzie wartość 1 oznacza, że dana strona znajduje się w rozszerzonej puli buforów.

Zanim użyjemy produkcyjnie

Mówiąc o rozszerzonej puli buforów należy wspomnieć, iż Microsoft w oficjalnej dokumentacji jasno przekazuje informacje o tym, że, powinniśmy dokładnie przetestować całe rozwiązanie. Zgodnie z dokumentacją zmiana parametrów konfiguracyjnych podczas pracy serwera może mieć negatywny wpływ na wydajność:

„Test the buffer pool extension thoroughly before implementing in a production environment. Once in production, avoid making configuration changes to the file or turning the feature off. These activities may have a negative impact on server performance because the buffer pool is significantly reduced in size when the feature is disabled”

Podsumowanie

Rozszerzenie puli buforów o plik posadowiony na dyskach SSD może być jedną z ciekawszych opcji związanych z podniesieniem wydajności SQL Server 2014. Wraz ze spadającą ceną komponentów dyskowych atrakcyjnym zagadnieniem może się okazać optymalizacja kosztowa związana dobraniem odpowiedniej proporcji pomiędzy ilością RAM a pamięcią SSD.