Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Praktyczny wybór procesorów dla obciążeń SQL Server 2014/2016 OLTP

Prawdopodobnie nie jest to procesor, którego szukasz.

Wyobraź sobie, że właśnie uzyskałeś zgodę kierownictwa na nowy lokalny serwer bazy danych, który będzie uruchamiał obciążenie OLTP o znaczeniu krytycznym przy użyciu programu SQL Server 2014 Enterprise Edition działającego w systemie Windows Server 2012 R2 Standard Edition. Ten nowy serwer zastąpi starszy serwer Dell PowerEdge R910 z systemem SQL Server 2008 R2 Enterprise Edition w systemie Windows Server 2008 R2 Enterprise Edition. Ten istniejący serwer ma cztery 45-nanometrowe procesory Intel Xeon X7560 Nehalem-EX (co daje łącznie 32 rdzenie fizyczne w systemie) i 512 GB pamięci RAM, co było konfiguracją premium w momencie zakupu w 2010 r.

W tym przykładzie masz nieco ograniczony budżet na sprzęt i licencje na oprogramowanie dostępne na aktualizację platformy. Chcesz przejść do programu SQL Server 2014 Enterprise Edition na nowym serwerze o znacznie lepszej wydajności procesora jednowątkowego (ponieważ masz obciążenie OLTP) i większej ogólnej pojemności procesora, przy jednoczesnym minimalizowaniu kosztów sprzętu i licencji programu SQL Server.

Biorąc pod uwagę te informacje, jak podjąłbyś decyzję, który model serwera wybrać i jaki konkretny procesor wybrać? Czy pozwoliłbyś komuś w IT? departament podejmuje te decyzje, czy też zaangażowałbyś się w proces oceny i podejmowania decyzji? Zamiast pozwolić decydować „Shon the server guy”, chcę pokazać prostą, praktyczną metodę rozwiązania tego problemu, używając wyników testów TPC-E, prostej arytmetyki i zdrowego rozsądku.

Pierwszym krokiem jest sprawdzenie online wyników testu TPC-E w poszukiwaniu najbliższego odpowiednika istniejącego systemu. Jeśli masz szczęście, znajdziesz oficjalny test, który jest dokładnie dopasowany do twojego systemu. W naszym przypadku znalazłem zgłoszenie z 10 kwietnia 2010, które dokładnie pasuje do naszego starszego systemu. Ten system Dell PowerEdge R910 osiągnął rzeczywisty wynik przepustowości TPC-E 1933,96 z czterema ośmiordzeniowymi procesorami Intel Xeon X7560. Rzeczywisty wynik przepustowości TPC-E jest dobrym miernikiem całkowitej pojemności procesora systemu, dając przybliżoną wskazówkę, ile jednoczesnych zapytań może obsłużyć (zakładając, że nie masz wąskich gardeł związanych z pamięcią masową lub pamięcią).

Drugim krokiem jest wzięcie rzeczywistego wyniku przepustowości TPC-E dla tego systemu i podzielenie go przez liczbę fizycznych rdzeni procesora w systemie, aby uzyskać wyobrażenie o wydajności procesora jednowątkowego dla konkretnego procesora w systemie testowanym . W przypadku tego systemu podzielilibyśmy po prostu 1933,96 przez 32 rdzenie fizyczne, aby uzyskać „wynik na rdzeń” równy 60,44. Bazowa częstotliwość taktowania procesora Intel Xeon X7560 wynosi 2,26 GHz, a w trybie Turbo 2,66 GHz. Ma 24 MB współdzielonej pamięci podręcznej L3 i szybkość Intel QPI 6,4 GT/s. Quick Path Interconnect (QPI) to połączenie typu punkt-punkt między procesorem a zintegrowanym kontrolerem pamięci, dzięki czemu wyższe prędkości QPI oznaczają szybszy dostęp do pamięci.

Trzecim krokiem jest wyszukanie wyników testu porównawczego TPC-E dla systemów i procesorów obecnej generacji, próbując znaleźć wynik dla systemu, który jest w przybliżeniu równoważny typowi nowego systemu, który rozważasz. Niestety czasami będzie to trudne, ponieważ dostawcy serwerów nie zgłaszali już tylu nowych systemów, co kiedyś, a także dlatego, że zawsze zgłaszają systemy, które używają „flagowego”, procesora o największej liczbie rdzeni dla danej generacji i rodziny procesorów. To sprawia, że ​​rzeczywisty wynik przepustowości TPC-E jest wyższy, ale także system korzystający z tego procesora jest znacznie droższy do uzyskania licencji na SQL Server ze względu na większą liczbę rdzeni. Innym problemem związanym z tymi „flagowymi” modelami procesorów jest to, że zazwyczaj zamieniają one większą liczbę fizycznych rdzeni na niższe podstawowe częstotliwości taktowania, więc ostatecznie płacisz znacznie wyższe koszty licencji i faktycznie uzyskujesz niższą wydajność jednowątkowego procesora.

Powszechnie wiadomo, że chciałbyś, aby nowy serwer czteroprocesorowy zastąpił dotychczasowy serwer czteroprocesorowy. W przypadku nowoczesnych serwerów dwuprocesorowych może to nie być już konieczne, w zależności od wielkości obciążenia. Był okres, od początku 2012 r. do początku 2014 r., kiedy nowe dwuprocesorowe procesory z rodziny Xeon E5 były znacznie szybsze pod względem wydajności jednowątkowej niż nowe czteroprocesorowe procesory z rodziny Xeon E7. Ta luka w wydajności nieco się zmniejszyła, gdy rodzina Xeon E7 v2 Ivy Bridge-EX została wydana na początku 2014 roku. Od tego czasu rodziny E5 i E7 są teraz jeszcze bliższe, ponieważ obie korzystają z mikroarchitektury Haswell.

Biorąc pod uwagę tę prawie równorzędną wydajność procesora, wybór modelu serwera sprowadza się do ogólnej pojemności pamięci, procesora i we/wy. Obecne serwery dwuprocesorowe są praktycznie ograniczone do 768 GB pamięci RAM z modułami DIMM 32 GB, podczas gdy obecne serwery czteroprocesorowe mogą mieć 3 TB pamięci RAM z modułami DIMM 32 GB. Większość klientów, z którymi się spotykam, może wygodnie uruchamiać swoje obciążenie na 768 GB pamięci RAM, ale niektórzy faktycznie potrzebują więcej. Zarówno serwery dwuprocesorowe, jak i czteroprocesorowe mogą używać procesorów Haswell z 18 rdzeniami fizycznymi każdy, więc w systemie masz ograniczenie do 36 lub 72 rdzeni fizycznych, w zależności od liczby gniazd.

W tym ćwiczeniu dostępny jest wynik testu TPC-E dla dwuprocesorowego systemu Fujitsu Primergy RX2540 M1 z rzeczywistym wynikiem przepustowości TPC-E wynoszącym 3772,08, przy użyciu dwóch osiemnastordzeniowych procesorów Intel Xeon E5-2699 v3 Haswell-EP i 512 GB BARAN. Procesor Xeon E5-2699 v3 ma taktowanie bazowe 2,3 GHz, a taktowanie Turbo 3,6 GHz. Ma 45 MB współdzielonej pamięci podręcznej L3 i szybkość Intel QPI 9,6 GT/s. W tym systemie podzielilibyśmy rzeczywisty wynik 3772,08 przez 36 rdzeni fizycznych, aby uzyskać „wynik na rdzeń” wynoszący 104,78.

Ten nowy dwugniazdowy system miałby prawie dwukrotnie większą pojemność procesora niż starszy system, przy około 1,57 razy większej wydajności jednowątkowej. Z punktu widzenia pojemności procesora i jednowątkowej wydajności byłbym przekonany, że ten nowy dwugniazdowy system będzie dobrym zamiennikiem starszego systemu. Ten nowy system będzie miał również gniazda rozszerzeń PCIe 3.0, dzięki czemu będzie miał większą całkowitą pojemność we/wy niż stary system. Niestety ma 36 fizycznych rdzeni, które będą wymagały licencji SQL Server 2014 Enterprise Edition, co będzie dość drogie.

Lepszym wyborem procesora może być Intel Xeon E5-2667 v3, który ma osiem fizycznych rdzeni, taktowanie bazowe 3,2 GHz, taktowanie Turbo 3,6 GHz, 20 MB współdzielonej pamięci podręcznej L3 i procesor Intel 9,6 GT/s. Szybkość QPI. Korzystając z prostej arytmetyki, możemy skorygować różnice między Xeon E5-2699 v3 a Xeon E5-2667 v3 (ponieważ oba pochodzą z tej samej generacji i rodziny procesorów).

Najpierw koryguję różnicę w liczbie rdzeni fizycznych. Jeśli podzielisz 8 przez 18, otrzymasz 0,44, więc pomnożysz 3772,08 razy 0,44, otrzymamy wynik 1676,48. Następnie musimy dostosować się do różnicy w taktowaniu bazowym między tymi dwoma procesorami. E5-2667 v3 ma o 39% wyższą bazową częstotliwość zegara niż procesor E5-2699 v3, więc pomnożylibyśmy 1676,48 razy 1,39, aby uzyskać ostateczną szacunkową Wynik TPC-E wynoszący 2330,31. Jeśli podzielimy ten szacunkowy wynik przez 16 rdzeni fizycznych, otrzymamy wynik „score per core” równy 145,64.

Tak więc, zgodnie z tymi obliczeniami, nadal mielibyśmy większą ogólną pojemność procesora niż starszy system i znacznie lepszą wydajność jednowątkowego procesora przy użyciu mniejszej liczby rdzeni, „zoptymalizowanego pod kątem częstotliwości” procesora Xeon E5-2667 v3 w nowym dwuprocesorowym system. Ostatnią premią wynikającą z wyboru procesora są znacznie niższe koszty licencjonowania SQL Server 2014, ponieważ potrzebowalibyśmy tylko licencji na 16 rdzeni zamiast 36 licencji na rdzenie, co oznacza oszczędność około 136 000,00 USD.

Miejmy nadzieję, że jest nieco bardziej zrozumiałe, jak przeprowadzić prostą analizę, która pomoże Ci zdecydować, który procesor należy wybrać dla nowego serwera bazy danych, biorąc pod uwagę ograniczenia obciążenia pracą i budżetem. Ta analiza jest nieco bardziej skomplikowana, gdy trzeba porównać procesory z różnych generacji i rodzin, ale można zastosować te same podstawowe zasady. Zagłębię się w ten temat w przyszłym artykule.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskaj nazwę kolumny z jej identyfikatora w SQL Server:COL_NAME()

  2. Prawidłowa metoda usuwania ponad 2100 wierszy (według ID) za pomocą Dapper

  3. Jak usunąć przy użyciu INNER JOIN w programie SQL Server?

  4. Jak znaleźć granice grup ciągłych liczb sekwencyjnych?

  5. Kiedy lepiej przechowywać flagi jako maskę bitową zamiast używać tabeli asocjacyjnej?