Dobór sprzętu pod serwer bazy danych MSSQL

0

Witam

Czy mammy na forum kogoś obeznanego w bazach MS i sprzęcie kto mógłby doradzić optymalny sprzęt pod serwer bazy danych systemu ERP?
Oczywiście podam wszytkie niezbędne dane które będą potrzebne.

Pozdrawiam

1

znaczy nie wiem czy jest coś takiego jak optymalny sprzęt. Generalnie im więcej RAMu tym lepiej. Sama ilość RAMu zależy od tego ile masz danych, jakie zapytania najczęściej wykonujesz i czy masz "dobre" indeksy. Najbardziej obrazowy przykład to tabela z danymi 100GB i wyszukiwanie jednego rekordu na podstawie pola, które nie jest zaindeksowane. W takim wypadku baza musi załadować do pamięci całą tą tabelę aby zwrócić jeden rekord. Z indeksem cała operacja może się skończyć załadowaniem do ramu jedynie do kilku stron danych. Dodatkowo Standard Edition ma limit na RAM do wersji 2012 na 64GB a nowsze na 128GB.
Następnie dyski - dzisiaj chyba bezkonkurencyjne, jeśli chodzi o wydajność są SDD. Osobne RAID na same pliki danych, osobne na system. Tu nie ma co wymyślać - wielkość taka, żeby starczyło :) a co do jakości i wydajności to takie na jakie Cię stać.
Jeśli chodzi o procek to pewnie coś z rodziny Intel Xeon E5-2600. Procesor tak naprawdę jest najmniej ważny. Bardziej ważna będzie sama płyta i to co (a właściwie ile) można w nią włożyć.

Jeśli chodzi o wydajności to jeśli masz odpowiednio dużo RAMu to dysk oraz procek spadają na dalszy plan, jeśli RAMu masz mało to ważny jest dysk (bo baza znacznie częściej się do niego odwołuje). Z moich obserwacji jeszcze nie miałem przypadku, żeby baza "zajęła" więcej niż 50% mocy procesora (mam wgląd w statystyki kilku serwerów, które zasilają ERPy różnych firm).

Czyli generalnie wszystko opiera się o dostępny budżet. I ile byś na serwer nie przeznaczył to zawsze może być lepszy :)

0

@abrakadaber: dziękuję Ci za odpowiedź.

Obecnie wielkość bazy prezentuje się tak:
screenshot-20171203222815.png

Zbierając informację z różnych źródeł, trafiłem m.in. na opinie że pamięć najlepiej braż wielkość bazy x 2 - co o tym myślisz?

Procesor tak naprawdę jest najmniej ważny.

A np. lepiej dwa gorsze procesory czy jeden lepszy, tzn czy silnik bazy lepiej wykorzystuje wiecej rdzeni w jednym procesorze czy rozłożone na kilka?

jakie zapytania najczęściej wykonujesz i czy masz "dobre" indeksy.

Staram się ostatnio zgłębić wiedzę na ten temat.
Sprawdzam jakie zapytania zajmują najwięcej czasu/zasobów i staram się je optymalizować (np. przez użycie indeksów)

Bardziej ważna będzie sama płyta i to co (a właściwie ile) można w nią włożyć.

W sensie ile pamięci, jaki procesor?

0

na pewno parę GM zje system (ile to zależy od systemu i tego co jeszcze na nim działa). Co do ilości ramu 2x rozmiar bazy to jeśli Cię stać to na pewno nie zaszkodzi natomiast czy jest to "najpoprawniejsza" ilość? Weź też pod uwagę, że baza cały czas rośnie. Nie wiem dokładnie jak RAM konsumuje MSSQL bo na co dzień mam do czynienia z Oraclem ale pewnie w jednym są podobni - zagospodarują sobie każdą ilość pamięci :).

Co do procków to wg mnie lepiej dać dwa gorsze ale mające więcej cache razem niż jeden. Z drugiej strony jeśli na starcie wykorzystasz oba gniazda to w przyszłości zamiast dołożyć nowy procek będziesz musiał wymienić oba. Tylko czy ta przyszłość będzie na tyle szybka że będzie sens robić upgrade starej maszyny?

Jeśli chodzi o płytę to dokładnie - ile kości (i jaki maksymalny rozmiar) możesz wpiąć, ile procków (pamiętaj, że jak masz dwa procesory to zazwyczaj konkretne gniazdo RAM jest przypisane do konkretnego procesora i wtedy niejako cały RAM dzieli się po połowie na poszczególne gniazda), czy ma RAID sprzętowy z podtrzymaniem bateryjnym pamięci czy trzeba osobno dokupić, ile ma kart sieciowych i jakie (czy 1Gb czy może światłowód), czy można wstawić zasilacz zapasowy

0

@abrakadaber: biorąc pod uwagę Twoje wskazówki (oraz inne znalezione w sieci) wysłałem dziś pare zapytań.
Dostałem taką ofertę:

serwer: Fujitsu rx300 s7
procesor: 2 x 8-CORE E5-2670 E5-2670 2,6GHz, VT, HT, 64-BIT, 20MB CACHE (w sumie 16 rdzeni, 32 wątki) (to praktycznie maks dla tej płyty)
pamięć: 192 GB (12800R - DDR3-1600) (płyta może obsłużyć więcej)
dysk1 (os): 2 x 512GB SSD 6Gbit (IBM)
dysk2 (baza): 2 x 512GB SSD 6Gbit (IBM)
kontroler SAS RAID D2616 RAID 0,1,10,5,50,6,60 w.o BBU

Sprzęt jest używany.
Pytanie czy trzeba się "bać" używanych dysków SSD (sprzedawca daje gwarancję 12 miesięcy)?
Co należy sprawdzić, na co zwrócić uwagę?

Czy Twoim (Waszym) zdaniem sprzęt ma rację bytu i może zapewnić wydajną pracę przy takich warunkach jak pisałem?

I jeszcze jedno pytanie odnośnie ilości dysków - trafiłem wczoraj w sieci na opinię ze warto mieć w sumie trzy dyski/macierze RAID:

  1. os
  2. baza
  3. log bazy

Czy taki podział rzeczywiście korzystnie wpływa na wydajność (przy założeniu że stosujemy dyski SSD a nie talerzowe)?

Z góry dziękuje za dalszą pomoc :)

0

ja bym się używanych SSD bał w sensie, że lepiej postawić to jednak na nowych bo nie wiesz ile tym jeszcze zostało. Co do RAIDu to ja zawsze wstawiam jeden dysk więcej - ustawiasz go jako zapas dla wszystkich macierzy i jak się któryś zepsuje to kontroler automatycznie zastąpi ten zepsuty zapasowym. Jeśli planujesz rozdzielić system od bazy na osobne dyski to spokojnie możesz system instalować na zwykłych HDD. Co do logu na osobnej macierzy to przy SSD nie ma to takiego znaczenia bo one mają czas dostępu na poziomie 0,1 ms dla całego dysku.

Rozdzielenie tego na różne macierze przy dyskach hdd ma na celu "niewchodzenie" sobie nawzajem w drogę procesom odpowiedzialnym za dane, log i temp. Wiąże się to z długim czasem losowego dostępu, który w SSD nie występuje

0

Co do rozdzielania to tak myślałem ale wolałem się upewnić :).

A jeszcze pytanie odnośnie "zużywania" dysków SSD - czy tutaj tez miarodajne jest odczytywanie stanu ze SMART? (z tego co widziałem w Internecie to zdania są podzielone, zarówno co do możliwości odczytu, jak i wartości tych danych)

0

jak masz dostęp do maszyny, spróbuj odczytać dane SMART, używany dysk, zwłaszcza SSD, jest jak 20 letni diesel z przebiegiem 130 tys. km :)
zwróć uwagę czy kontroler nie wyłączy przypadkiem cache dysków, w SSD nie jest to zalecane
Możesz podać model tych dysków?

1

co do SMART to chyba zależy od producenta dysku i jego podejścia do tego co on (SMART) zwraca. Nawet przy dyskach talerzowych nie masz czegoś takiego jak "zawsze zwracane parametry" - różni producenci zwracają różne parametry. Wg mnie jeśli SMART pokazuje, że dysk kończy życie to należy mu wierzyć natomiast jeśli pokazuje, że wszystko jest ok to tylko pokazuje :). To tak jak z politykiem, który jak obiecuje, ze zabierze to zabierze a jak obiecuje, że da to obiecuje

0

Chyba mnie przekonaliście :).

@Dżery te dyski to: 512MB SSD by IBM , FRU: 49Y5845 , IBM P/N: 49Y5848 6Gbit IBM OPTION: 49Y5844 (tak dokładnie podał sprzedający)

0

wg tej strony dysk ma TBW na poziomie 72 TB, trochę mało jak na obecne czasy

0

O... Poszukam jakiegoś narzedzia i sprawdzę ile mamy onecnie zapisu w ciągu doby.

Jak dobrze rozumiem przy odpowiednio dużej ilości pamięci operacji na dysku będzie mniej niż obecnie (w tek chwili wielkość ram < (wielkość bazy / 2))?

0

Jeszcze raz chciałbym wrócić do procesora...

Kalkulując cenę, pominąłem cenę licencji, teraz do tego wróciłem i troszkę zdębiałem...
Mamy w tej chwili licencję MSSQL Standard na 4 rdzenie.
Przy zaproponowanej konfiguracji w sumie będzie 16 rdzeni czyli konieczność dokupienia 6 licencji (po 2 rdzenie w licencji) - cena tych licencji kilkukrotnie przewyższy wartość serwera.

Pojawia się pytanie (biorąc pod uwagę wcześniejszą uwagę, że procesor jest raczej na dole w hierarchii ;) ): czy będzie miało racje bytu (tzn. nie będzie to wąskim gardłem) wybranie procesora 4 rdzeniowego z możliwie dużym taktowaniem per rdzeń?

W przeciwnym wypadku będę msusiał przeforsować nową licencję na SQL Server, tym razem per device ;)

0

zawsze możesz postawić na nim wirtualkę i przydzielić jej 4 rdzenie :)

0

O tym nie pomyślałem :).

Puściłem dziś monitor wydajności i tak to wygląda w obecnej chwili (Xeon E3-1271 v3 @ 3,6GHz):
screenshot-20171205131229.png
zastanawia mnie ten maximum 100 - jakoś tego na wykresie nie widać :).

Pytanie czy te 4 rdzenie (przydzielone do wirtualki) wystarczą do wydajnej pracy bazy.
Zaproponowany był procesor E5-2670 2,6GHz, więc wolniejszy przydzielając jego 4 rdzenie procesor wirtuaki będzie wolniejszy niż obecnie wykorzystywany o ile dobrze rozumiem.

A druga rzecz to czy większą ilość RAM (co za tym idzie mniejsza liczba operacji dyskowych) wpłynie na obniżenie wykorzystania procesora?
Czy zajmie się on po prostu czym innym (obsługą większej ilości pamięci).

Przy okazji:
puściłem też monitor dysku - przez 4 godziny 43 minuty mam
50617 MB odczytu
12622 MB zapisu

0

przy takiej ilości zapisów to zużyciem dysku raczej nie musisz się martwić. To może zrób tak: kup na początek 2 nowe serwerowe dyski SSD, włóż do obecnego serwera i sprawdź czy to aby nie załatwi sprawy, a jeśli nadal będzie coś nie tak, to dyski tak czy inaczej wykorzystasz

0

@Dżery:
w aktualnym serwerze są 4 dyski FUJITSU PRIMERGY S26361-F5525-E120 SSD SATA 6G 120GB READINTENSIVE 2.5′ H-P pracujące w RAID 1+0.
Myślisz że ich wymiana mogła by coś dać?

Jest 32 GB RAMu i to maks dla tj płyty niestety - myślę (wnioskuje z podpowiedzi), że to tu tkwi największy problem.

0

na upartego jak weźmiesz ten nowy to zawsze możesz do niego stary procek wsadzić.

0

Płyta w nowym serwerze nie obsługuje tego procesora ;).

Myślę, że można wziąć nowy i wykorzystać 4 rdzenie - jak będzie brakować mocy to wtedy cisnąć o dokupienie licencji na np. kolejne 4.

Orientujecie się może czy w takim wypadku trzeba stawiać wirtualkę z przydzieloną odpowiednią liczbą rdzeni, czy można serwer bazy zainstalować bezpośrednio a wykorzysta on tyle zasobów na ile jest licencja (i będzie to zgodne z postanowieniami licencji)?

0

SQL 2016 możesz licencjonować: sqlserver + CAL lub per core (pierwsza opcja nie dotyczy enterprise).
W środowisku niezwirtualizowanym:

Model sql server + CAL jest prosty: jedna licencja na serwer + tyle CAL ile użytkowników.
W przypadku per core musisz kupić minimum licencje na 4 cory, jeżeli masz ich więcej to każdy ma być objęty licencją.

Po prostu to policz, nie pamiętam ale core zaczynał się opłacać od 100 (albo 150) CAL.

https://download.microsoft.com/download/9/C/6/9C6EB70A-8D52-48F4-9F04-08970411B7A3/SQL_Server_2016_Licensing_Guide_EN_US.pdf

0

@Panczo mam aktualnie licencję na 2014 standard na 4 cory - jeżeli się uda to dobrze by było wykorzystać to co już jest dlatego "kombinacja" z wirtualką i stąd pytanie czy instalacja serwera bazy danych z licencją na 4 rdzenie w maszynie która ma ich więcej jest niezgodna z licencją czy powoduje tylko to żę silnik wykorzystuje tyle rdzeni na ile ma licencje.

1

Info czerpię stąd: http://download.microsoft.com/download/b/4/e/b4e604d9-9d38-4bba-a927-56e4c872e41c/sql_server_2014_licensing_guide.pdf

Jeżeli nie wirtualizujesz musisz "pokryć" licencjami wszystkie cory fizyczne które ma serwer, można zwirtualizować OS-a i wtedy licencjonować konretną VM-kę, czyli przypisać do niej tyle zasobów na ile pozwala licencja. I to nie jest jakaś specjalna kombinacja, bo o ile dobrze pamiętam licencja na serwer standard pozwala go zwirtualizowac na 2 maszyny.

Trzeba oczywiście to zweryfikować, bo powtórzę nie czuje się specem od licencjonowania.

0

jeżeli nie wirtualizujesz musisz "pokryć" licencjami wszystkie cory fizyczne które ma serwer,

czyli ta opcja chwilowo odpada ;)

o ile dobrze pamiętam licencja na serwer standard pozwala go zwirtualizowac na 2 maszyny.

Tutaj z tego co ostatnio wyczytałem sprawa wygląda tak:
Jednda licencja Windows Server Standard pozwala uruchomić:

  • maszynę fizyczną pracującą jedynie jako serwer wirtualizacji + 2 wirtualki
    lub
  • maszynę fizyczną pracującą jako serwer wirtualizacji + inne usługi + jedna wirtualka

Oczywiście to też przeczytane "gdzieś w Internecie" także nie musi być w 100% zgodne z prawdą :).

Nie zmienia to faktu że uruchomienie wirtualki tak czy inaczej nie będzie problemem i tak chyba zrobię :).
Sprawdzę jeszcze dostępność/ceny procesorów do tej płyty w największym taktowaniem

Panowie dziękuję Wam serdecznie za wszystkie porady/wskazówki :)!
Na pewno odezwę się już po przetestowaniu nowego sprzętu (a może jeszcze przed jak pojawią się kolejne wątpliwości ;)).

1

@hipekk: tel na infolinię MS rozwiąże wszystkie Twoje problemy z licencjami

1

W przypadku SSD uważaj na "write-amplification". Jeśli system raportuje X bajtów zapisu, to w praktyce na SSD może trafiać 10X, bo SSD wymazuje/zapisuje stronami.
https://en.wikipedia.org/wiki/Write_amplification

1 użytkowników online, w tym zalogowanych: 0, gości: 1