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

Wybór procesora dla SQL Server 2012

Ponieważ firma Microsoft zmieniła model licencjonowania SQL Server 2012, szczególnie ważne jest przeprowadzenie przemyślanej analizy przed podjęciem decyzji, którego dokładnie procesora użyć dla serwera bazy danych, na którym będzie działać SQL Server 2012. Przejście na licencjonowanie oparte na rdzeniach dla SQL Server 2012 Enterprise Edition oznacza, że ​​nieostrożna decyzja o tym, na jakim procesorze będzie działać, może kosztować zarówno dużo pieniędzy, jak i dużą wydajność i skalowalność. Ten sam problem występuje (w mniejszym stopniu) w przypadku SQL Server 2012 Standard Edition.

Różnica w kosztach licencjonowania programu SQL Server 2012 między dobrym wyborem procesora a złym wyborem może w wielu przypadkach więcej niż zapłacić za sprzęt i podsystem pamięci masowej. Biorąc to pod uwagę, w jaki sposób dokonać wyboru optymalnego procesora dla programu SQL Server 2012 Enterprise Edition? Zwykle pierwszym krokiem byłoby podjęcie decyzji, czy chcesz użyć procesora Intel Xeon, czy procesora AMD Opteron (SQL Server 2012 nie obsługuje rodziny procesorów Intel Itanium).

Niestety, wybór procesora AMD Opteron do użytku z programem SQL Server 2012 Enterprise Edition jest bardzo trudny do opracowania dobrego technicznego lub biznesowego uzasadnienia. Od czasu wprowadzenia architektury Intel Nehalem (serie Intel Xeon 3500, 5500, 6500 i 7500) w latach 2008-2010 AMD po prostu nie było w stanie konkurować z Intelem, jeśli chodzi o wydajność procesorów jednowątkowych. AMD nie ma środków finansowych ani technicznych, aby konkurować z Intelem pod względem wydajności lub energooszczędności. Wraz z każdą nową premierą rodziny procesorów Intela AMD było coraz bardziej w tyle. To nie jest dobra rzecz dla IT. przemysłu, ponieważ brak realnej konkurencji ze strony AMD nieuchronnie spowolni tempo innowacji ze strony Intela.

Ponieważ procesor Intel Xeon wydaje się być jedynym realnym wyborem dla SQL Server 2012, następnym krokiem jest podjęcie decyzji, która z wielu dostępnych rodzin i modeli Xeon będzie najlepszym wyborem dla zamierzonego obciążenia SQL Server 2012. Firma Intel oferuje różne rodziny produktów Xeon dla serwerów o różnej liczbie gniazd. Dla jednoprocesorowych stacji roboczych i serwerów mają rodzinę Intel Xeon E3. Dla dwugniazdowych stacji roboczych i serwerów mają rodzinę Intel Xeon E5. Wreszcie, w przypadku serwerów z dwoma, czterema i ośmioma (lub więcej) gniazdami, mają rodzinę Intel Xeon E7.

Ponieważ w tym artykule omówiono SQL Server 2012 Enterprise Edition, zignorujemy jednoprocesorową rodzinę Intel Xeon E3, ponieważ procesory Intel Xeon E3 są ograniczone do 32 GB pamięci RAM DDR3. Istnieją pewne niszowe scenariusze, w których użycie procesora Intel Xeon E3-1290V2 w jednoprocesorowym serwerze z 32 GB pamięci RAM w połączeniu z SQL Server 2012 Enterprise Edition może mieć sens. Być może masz stosunkowo małą bazę danych, w której potrzebujesz absolutnie najszybszej jednowątkowej wydajności, a także potrzebujesz określonych funkcji Enterprise Edition, takich jak grupy dostępności SQL Server AlwaysOn.

Bardziej powszechnym wyborem jest serwer dwuprocesorowy lub czteroprocesorowy (lub więcej). Będziesz musiał ocenić rozmiar i intensywność obciążenia i zdecydować, czy może działać na mniejszym, ale szybszym serwerze dwuprocesorowym, czy też będziesz musiał przejść na większy, wolniejszy serwer czteroprocesorowy lub większy. Na tę decyzję ma bezpośredni wpływ wymagana całkowita pojemność procesora, całkowita fizyczna pojemność pamięci RAM i całkowita wymagana pojemność we/wy (która jest związana z liczbą i typem gniazd rozszerzeń PCI-E w serwerze).

Jednym z powszechnych nieporozumień jest to, że większe serwery oparte na procesorach Intela (pod względem liczby gniazd) są szybszymi serwerami. To po prostu nieprawda z wielu powodów. Wielkość sprzedaży i udział w rynku serwerów dwugniazdowych jest znacznie wyższy niż w przypadku serwerów czteroprocesorowych i większych. W przypadku dwuprocesorowych procesorów Intela w porównaniu z czteroprocesorowymi procesorami Intel wymagana jest mniejsza ilość prac inżynieryjnych i sprawdzania poprawności. Ze względu na te czynniki firma Intel częściej i wcześniej wypuszcza nowe architektury procesorów dla serwerów o mniejszej liczbie gniazd. Obecnie jednogniazdowa rodzina E3 firmy Intel korzysta z 22-nanometrowego Ivy Bridge, a dwugniazdowa rodzina E5 z 32-nanometrowego Sandy Bridge-EP, podczas gdy rodzina Intel E7 korzysta ze starszej 32-nanometrowej mikroarchitektury Westmere-EX.

Innym powodem jest to, że nie uzyskuje się skalowania liniowego w miarę zwiększania liczby gniazd, nawet w przypadku procesorów o architekturze niejednolitego dostępu do pamięci (NUMA), które skalują się znacznie lepiej niż starsza architektura symetrycznego przetwarzania wieloprocesowego (SMP). Oznacza to, że serwer czteroprocesorowy nie będzie miał dwukrotnie większej wydajności ani pojemności procesora niż serwer dwuprocesorowy z tym samym modelem procesora.

Można to potwierdzić, porównując wyniki testu TPC-E OLTP systemów dwuprocesorowych z procesorami Intel Xeon E7-2870 do systemów czteroprocesorowych z procesorami Intel Xeon E7-4870 do systemów ośmioprocesorowych z procesorami Intel Xeon E7-8870. Mimo że są to zasadniczo ten sam procesor o tej samej indywidualnej charakterystyce wydajności, wynik testu TPC-E nie podwaja się po podwojeniu liczby gniazd, jak widać w tabeli 1.

Procesor Liczba gniazd Wynik TPC-E Całkowita liczba rdzeni Wynik/rdzeń TPC-E
Xeon E7-2870

2

1560,70

20

78,04
Xeon E7-4870

4

2862,61

40

71,57
Xeon E7-8870

8

4614.22

80

57,68

Tabela 1:Porównanie wyników TPC-E w miarę wzrostu liczby gniazd

Kiedy myślę o porównaniu procesorów jednoprocesorowych z procesorami dwuprocesorowymi, cztero- i ośmioprocesorowymi, lubię używać analogii do samochodu i ciężarówki. Serwer z jednym gniazdem jest jak samochód wyścigowy Formuły 1, jest niezwykle szybki, ale ma bardzo małą pojemność ładunkową. Serwer z dwoma gniazdami jest jak Tesla Model S, ponieważ jest bardzo szybki i ma całkiem przyzwoitą pojemność ładunkową. Serwer z czterema gniazdami jest jak duży SUV, jest wolniejszy, ale ma większą pojemność ładunkową niż Tesla Model S. Wreszcie serwer z ośmioma gniazdami jest jak ciężarówka Mack, zdolny do przewożenia ogromnego ładunku znacznie wolniej niż SUV.

Procesor Liczba gniazd Wynik TPC-E Całkowita liczba rdzeni Wynik/rdzeń TPC-E
Xeon E5-2690

2

1881,76

16

117.61
Xeon E5-4650

4

2651.27

32

82,85

Tabela 2:Porównanie wyników TPC-E dla dwóch modeli procesorów Xeon E5

Porównując tabelę 1 z tabelą 2, widzimy, że rodzina Intel Xeon E5 radzi sobie znacznie lepiej na TPC-E niż rodzina Intel Xeon E7, co nie jest niespodzianką, ponieważ porównujemy nowszy Sandy Bridge-EP do starsza mikroarchitektura Westmere-EX. Z punktu widzenia wydajności dwuprocesorowy Xeon E5-2690 radzi sobie znacznie lepiej niż dwuprocesorowy Xeon E7-2870. Moim zdaniem naprawdę nie powinieneś używać dwuprocesorowego Xeona E7-2870 dla SQL Server 2012 ze względu na jego niższą wydajność jednowątkową i wyższą liczbę fizycznych rdzeni (co oznacza wyższy koszt licencjonowania SQL Server 2012).

Obecnie moim ulubionym procesorem Intel do serwerów jest Intel Xeon E5-2690. Zapewnia doskonałą wydajność jednowątkową i stosunkowo przystępne koszty licencjonowania SQL Server 2012. Jeśli musisz przejść na serwer z czterema gniazdami, wybrałbym procesor Intel Xeon E5-4650 zamiast procesora Intel Xeon E7-4870, ponieważ uzyskasz lepszą wydajność jednowątkową i niższą licencję SQL Server 2012 koszty. Korzystanie z wyników testów porównawczych TPC-E to doskonały sposób na porównanie wydajności i efektywności licencji SQL Server 2012 różnych rodzin procesorów.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Żądanie nie powiodło się lub usługa nie odpowiedziała na czas?

  2. Jak włączyć wszystkie ograniczenia sprawdzania w bazie danych SQL Server — samouczek SQL Server / TSQL, część 88

  3. Jak korzystać z wyszukiwania semantycznego w SQL Server

  4. 2 sposoby tworzenia tabeli na serwerze połączonym za pomocą T-SQL

  5. TODATETIMEOFFSET() Przykłady w SQL Server