Od czasu wydania dodatku Service Pack 1 dla programu SQL Server 2016 w dniu 16 listopada 2016 r., z wieloma bardzo przydatnymi funkcjami związanymi z programowalnością, które wcześniej były dostępne tylko w wersji Enterprise Edition, dla wielu organizacji celowe korzystanie z programu SQL Server 2016 stało się znacznie bardziej wykonalne. Wersja standardowa niż w przeszłości.
Jeśli myślisz o tym, musisz mieć świadomość kilku typowych problemów i pułapek, które możesz napotkać podczas instalacji i używania SQL Server 2016 Standard Edition na nowym serwerze z nowoczesnym sprzętem.
Limity i konfiguracja pamięci
Pierwszym problemem są limity licencjonowania na wystąpienie dla SQL Server 2016 Standard Edition. Pierwszy limit licencji to ilość pamięci, której można użyć dla puli buforów dla każdego wystąpienia programu SQL Server 2016 Standard Edition, która wynosi tylko 128 GB, podobnie jak w programie SQL Server 2014 Standard Edition. Osobiście uważam, że ten limit jest sztucznie niski, biorąc pod uwagę gęstość pamięci nowoczesnych serwerów dwuprocesorowych, ale jest to limit, z którym musimy sobie poradzić.
Obecne serwery dwuprocesorowe z procesorami z rodziny Intel Xeon E5-2600 v4 mogą korzystać z maksymalnie 12 modułów DIMM na procesor, podczas gdy moduły DIMM DDR4 ECC o pojemności 32 GB zapewniają największą pojemność w przeliczeniu na GB. Każdy serwer z tą rodziną procesorów ma 4 kanały pamięci na procesor, a każdy kanał obsługuje do 3 modułów DIMM. W pełni zapełniony serwer dwuprocesorowy z dwudziestoma czterema modułami DIMM 32 GB miałby 768 GB pamięci RAM, czyli znacznie więcej niż jedno wystąpienie SQL Server 2016 Standard Edition.
Ponieważ SQL Server 2016 Standard Edition ma tak niski limit pamięci na wystąpienie, należy celowo wybrać odpowiednią konfigurację pamięci, która pozwoli wykorzystać całą pamięć z limitem licencji, a jednocześnie uzyskać najlepszą możliwą wydajność pamięci. Zapełnienie tylko jednego modułu DIMM na kanał pamięci zapewni absolutnie najlepszą wydajność pamięci obsługiwaną przez procesor(y).
Główni dostawcy serwerów, tacy jak Dell, oferują szczegółowe wskazówki dotyczące możliwych konfiguracji pamięci dla swoich serwerów, w zależności od liczby i konkretnego typu wybranego procesora. W przypadku SQL Server 2016 Standard Edition w dwuprocesorowym serwerze z dwoma procesorami z rodziny Intel Xeon E5-2600 v4 wybór ośmiu modułów DDR4 DIMM o pojemności 32 GB zapewniłby 256 GB pamięci RAM z maksymalną obsługiwaną szybkością 2400 MT/s.
Umożliwiłoby to ustawienie maksymalnej pamięci serwera (dla puli buforów) na 131 072 MB (128 GB) i nadal miałoby dużo pamięci dla systemu operacyjnego i do ewentualnego wykorzystania przez indeksy magazynu kolumn i OLTP w pamięci. Miałbyś również szesnaście pustych gniazd DIMM, które można wykorzystać do przyszłej rozbudowy pamięci RAM (z czego można by skorzystać, dokonując kolejnej aktualizacji do Enterprise Edition). Innym zastosowaniem niektórych z tych pustych gniazd DIMM byłoby „buforowanie ogona dziennika” w modułach NVDIMM (co jest obsługiwane w SQL Server 2016 Standard Edition z dodatkiem SP1).
Limity licencji procesora
SQL Server 2016 Standard Edition jest również ograniczony do mniejszej z czterech gniazd lub 24 fizycznych rdzeni procesora. Dzięki obecnym i przyszłym rodzinom procesorów, zarówno Intel, jak i AMD, które będą miały do 32 rdzeni fizycznych, bardzo łatwo jest nieumyślnie przekroczyć limit rdzeni procesora na instancję, co ma szereg tragicznych konsekwencji dla wydajności i kosztów licencji.
Pierwszym negatywnym skutkiem tego jest sposób, w jaki SQL Server 2016 Standard Edition przydzieli dostępne rdzenie fizyczne ograniczone licencją w węzłach NUMA. Na przykład, jeśli masz nowy dwuprocesorowy serwer z dwoma 16-rdzeniowymi procesorami Intel Xeon E5-2697A v4, domyślnie SQL Server 2016 Standard Edition będzie używał szesnastu fizycznych rdzeni w węźle NUMA 0 i tylko osiem rdzeni w NUMA węzeł 1, który jest niezrównoważoną konfiguracją, która nie będzie działać tak dobrze, jak mogłaby. Możesz rozwiązać ten problem za pomocą polecenia ALTER SERVER CONFIGURATION, jak to opisuję tutaj.
Aby dodać obrazę do obrażeń w tej sytuacji, Microsoft oczekuje również zakupu licencji na rdzenie dla wszystkich 32 rdzeni fizycznych w maszynie, mimo że możesz używać tylko 24 rdzeni fizycznych na instancję. Byłby to w przybliżeniu 15 000 USD dodatkowy koszt licencji w przypadku licencji na rdzeń, z których nie można korzystać, chyba że zdecydujesz się uruchomić wiele instancji na tym samym komputerze hosta. Dodatkowy koszt licencji pokryłby typowy serwer dwuprocesorowy, w zależności od konfiguracji.
Inną częstą pułapką, której należy unikać w wersji Standard Edition, jest tworzenie maszyny wirtualnej, która ma więcej niż cztery gniazda. Jeśli to zrobisz, SQL Server Standard Edition użyje tylko czterech gniazd ze względu na limit licencji na gniazda.
Wybór procesora
Obecnie najnowocześniejszą rodziną procesorów Intel Xeon dla serwerów dwuprocesorowych jest rodzina produktów 14 nm Intel Xeon E5-2600 v4 (Broadwell-EP), która została wydana w pierwszym kwartale 2016 r. Intel jest bliski wprowadzenia na rynek nowej generacji procesorów Intel 14 nm. Xeon E5-2600 v5 (Skylake-EP), który jest już dostępny w Google Cloud Platform. Domyślam się, że te nowe procesory (które będą wymagały nowych modeli serwerów) będą publicznie dostępne w drugim kwartale 2017 roku.
Biorąc pod uwagę limit licencji na 24 rdzenie fizyczne, jest to niezwykle ważne że nie wybierasz procesora, który ma więcej niż 12 rdzeni fizycznych (jeśli planujesz zapełnić oba gniazda serwera dwuprocesorowego). Ogranicza to nieco wybór jednostek SKU procesorów, ale nadal dostępne są cztery świetne opcje, jak pokazano w Tabeli 1.
Model | Rdzenie | Wynik/rdzeń fizyczny | Koszt licencji | |
---|---|---|---|---|
Xeon E5-2687W v4 | 24 | 3,673,00 | 153.04 | 44 592,00 USD |
Xeon E5-2667 v4 | 16 | 2611,91 | 163,24 | 29 728,00 USD |
Xeon E5-2643 v4 | 12 | 2081,36 | 173,44 | 22 296,00 USD |
Xeon E5-2637 v4 | 8 | 1428,39 | 178,54 | 14 864,00 USD |
Tabela 1:porównawcze metryki dwugniazdowych procesorów systemowych
Tabela 1 przedstawia całkowitą liczbę rdzeni fizycznych, szacowany wynik TPC-E, szacowany wynik TPC-E/rdzeń fizyczny oraz całkowity koszt licencji SQL Server 2016 Standard Edition dla systemu dwuprocesorowego z dwoma wybranymi procesorami. Możesz zauważyć, że mam procesor dwunastordzeniowy, procesor ośmiordzeniowy, procesor sześciordzeniowy i procesor czterordzeniowy, ale w tabeli 1 nie ma procesora dziesięciordzeniowego. Jest to zgodne z projektem, ponieważ trzy dostępne modele procesorów dziesięciordzeniowych są bardzo złym wyborem dla SQL Server, ze względu na ich bardzo niskie podstawowe częstotliwości zegara.
Szacowany wynik TPC-E dla całego systemu jest miarą całkowitej pojemności procesora systemu, podczas gdy wynik/rdzeń jest miarą wydajności jednowątkowego procesora danego procesora.
Podsumowanie
Jeśli chcesz uzyskać najlepszą możliwą wydajność przy najniższych kosztach sprzętu i licencji SQL Server dla wystąpienia SQL Server 2016 Standard Edition, wybierz konfigurację pamięci, która używa tylko jednego modułu DIMM na kanał pamięci (co oznacza łącznie osiem modułów DIMM w systemie dwugniazdowym z dwoma procesorami z rodziny Intel Xeon E5-2600 v4).
Powinieneś także celowo wybrać jeden z czterech procesorów wymienionych w Tabeli 1. Każdy inny wybór procesora jest potencjalnie kosztownym błędem z tej perspektywy.
Na koniec, jeśli zamierzasz używać programu SQL Server 2016 Standard Edition, należy zbadać i przetestować, czy rozszerzenie puli buforów (BPE) może zwiększyć wydajność przy obciążeniu. W zależności od obciążenia, buforowanie „ogonu dziennika” na NVDIMM może również być bardzo korzystne dla wydajności dziennika transakcji.