Skocz do zawartości

Licencjonowanie SQL server, różnice w wydajności.

Polecane posty

Witam,

 

Planuje zakup SQL Server 2019. Obecnie korzystam z dwóch baz danych - sello oraz subiekt - przy SQL Server w wersji darmowej. 

Baza danych Sello zajmuje 7 GB, Subiekta GT - 9,2 GB ( po czyszczeniu treści maili i usunięciu zdjęc z kartotek towarów).

Dziennie na 5 stanowiskach przetwarzamy w sello ok. 1000 zamówień, co wiąże się z wystawieniem ok. 1000 dokumentów końcowych typu paragon, faktura. Dodatkowo korzystamy z dodatków opartych o Sferę m.in do importu zamówień ze sklepu Shoper, automatycznego montażu kompletów itp. Korzystamy również z Gestora oraz wbudowanej obsługi wiadomości via pop3 - co ma zdecydowany wpływ na obciążenie silnika SQL. 

 

SQL server zainstalowany na maszynie wirtualnej (vmware) z windows 10 2004 pro. 

Maszyna ma przydzielone 8 rdzeni E5-2650 v2 2,6 Ghz oraz aż 128 GB RAM ( wiem wiem, nie wykorzystam tego - ale mam aż 512 GB RAM do dyspozycji - serwer do wirtualizacji wielu stanowisk, 2 procesorowy, 16 rdzeniowy). 

 

Obecnie wydajność silnika SQL na jednym rdzeniu ( ograniczenia licencji)  to dramat. Tworzenie dokumentu typu paragon w programie Subiekt GT z programu sello to nie rzadko powyżej minuty. Wylistowanie faktur z filtrem obejmującym 3 lata - ok. 200 tys pozycji - jakieś pół minuty.

 

Rozważam zakup SQL Server 2019.

 

Łącznie mamy 9 stanowisk. 4 rzadziej używane.

 

Czy do programów Subiekt GT oraz Sello mogę użyć licencji Runtime, czy musi być to licencja Full Use ?

 

Ma ktoś doświadczenie z migracją na płatną wersję SQLa ? Czy mogę spodziewać się skokowego wzrostu wydajności?

 

Jeśli do programów Sello i Subiekt GT mogę użyć licencji Runtime to czy dla 9 stanowisk muszę zakupić:

SQL Server 2019 Standard Edition Runtime (Licencja na serwer plus 1 stanowisko klienckie) x 1 

+

SQL Server 2019 Standard Edition Runtime (Licencja na jedno stanowisko klienckie) x 8 ?

 

Link to postu
12 minut temu, Lukasz team napisał:

Obecnie wydajność silnika SQL na jednym rdzeniu ( ograniczenia licencji)  to dramat.

Nie znam takich ograniczeń edycji Express, z pamięci SQL 2008 R2 ma ograniczenie do 1 procesora, więc wykorzysta wszystkie 2, 4, 8, 16 i więcej rdzeni - proszę podać link do tych informacji.

 

13 minut temu, Lukasz team napisał:

Tworzenie dokumentu typu paragon w programie Subiekt GT z programu sello to nie rzadko powyżej minuty. Wylistowanie faktur z filtrem obejmującym 3 lata - ok. 200 tys pozycji - jakieś pół minuty.

Należało/należy sprawdzić co dokładnie zajmuje tyle czasu, wystawienie dokumentu to jakaś tragedia, u klientów z podobnymi lub większymi obciążeniami nie widziałem takich czasów.

 

14 minut temu, Lukasz team napisał:

Czy do programów Subiekt GT oraz Sello mogę użyć licencji Runtime, czy musi być to licencja Full Use ?

Wystarczy Runtime.

 

14 minut temu, Lukasz team napisał:

Ma ktoś doświadczenie z migracją na płatną wersję SQLa ?

Taka praca - wiele doświadczeń.

 

15 minut temu, Lukasz team napisał:

Czy mogę spodziewać się skokowego wzrostu wydajności?

Nie, ja bym się nie spodziewał "skoku", praktycznie już skończył się miejsce w bazie danych więc pełny SQL i tak będzie potrzebny, chyba, że zdecydujecie się na usunięcie dokumentów, w innych przypadkach proponuję zawsze to samo - testy, aby przekonać się jaki będzie efekt.

 

18 minut temu, Lukasz team napisał:

Jeśli do programów Sello i Subiekt GT mogę użyć licencji Runtime to czy dla 9 stanowisk muszę zakupić:

SQL Server 2019 Standard Edition Runtime (Licencja na serwer plus 1 stanowisko klienckie) x 1 

+

SQL Server 2019 Standard Edition Runtime (Licencja na jedno stanowisko klienckie) x 8 ?

Nie, potrzebne jest 9 stanowisk.

 

 

Link to postu

Faktycznie ograniczenie dotyczy 1 procesora a nie rdzenia.....co jest o tyle dziwne, że proces SQL Server Windows NT - 64 bit nie zajmuje nigdy więcej jak 12,5 % czasu procesora. Zastanawiam się też dlaczego przy licencji Express proces ten rezerwuje nawet 8 GB pamięci ram - mimo, że licencja ma ograniczenie do 1 GB pamięci. 

Link to postu

Panie Łukaszu wg mnie doszedł Pan do granicznych możliwości Subiekta :)  Teraz pozostaje Panu optymalizacja tego co jeszcze można zoptymalizować w SQL. 

Nie sądzę że zmiana wersji bazy rozwiąże problem - skupiłbym się na podstawowych raportach SQL o TOP owych procesach które zajmują zasoby serwera i próbować je optymializować.

 

Link to postu

Z własnego doświadczenia, wiem, że jest diametralna różnica pomiędzy Express, a Runtime - swojego czasu mieliśmy DEV na Expresie, i spowolnienie było nawet 10x przy bardzo rozbudowanych dokumentach, więc na pewno odczuje Pan różnicę, jeśli ma Pan porządny serwer.

Co do obciążania na rdzeniu, to na Runtime, na pewno bierze ich wiele, aczkolwiek u nas przy mocnym obciążeniu, SQL skacze może do 30%, dla dwóch Xeonów E5-2420 (łącznie 12 rdzeni, 24 wątki, 2.2GHz przy ciągłej pracy).

Ciekawe, że Express łyka te 8GB RAM, rzeczywiście powinien maksymalnie 1GB, ale tutaj zdecydowanie jest różnica, u nas potrafi i 32 łyknąć po paru tygodniach bez restartu, a regularnie to tak z 16GB.

Pytanie ważne - jakie dyski twarde? Jak chcemy mieć porządną wydajność, to NVME z transferami ponad 2Gbs/s by się przydały ;)

Link to postu

Macierz RAID 1 na 2 dyskach HPE 240 GB SATA RI SFF P04556-B21. Dyski kosmicznie drogie - z mocno przeciętną wydajnością - 

Dla RND4K Q1T1 - odczyt 3 MB/s, zapis 5 MB/s.

 

Obecnie serwer to HP DL360 g8 z 2 x  E5-2650 v2 2,6 Ghz oraz 512 GB RAM. SQLserver na Windows10 pro - z przydzielonymi 8 rdzeniami ( 1 procesor, 8 rdzeni) oraz 128 GB RAM. Jedyna maszyna wirtualna na tej macierzy RAID. Nie miałem niestety wpływu na konfigurację. Procesor według CPU-Z ma punktację Multi Thread - 1780, Single Thread - 260.

 

Wcześniej wszystko działało na stary serwerze z E3-1220v5, 24 GB RAM DDR4 oraz macierzą RAID1 z 2 dysków SSD 970 EVo.

Dla RND4K - odczyt 60 MB/s, zapis 130 MB/s. Procesor według CPU-Z ma punktację Multi Thread - 1452, Single Thread - 383.

 

Jak mogę sprawdzić co jest "wąskim gardłem" w wydajności?  Czas procesora jest wykorzystywany w ok. 12 %, podejrzewam, że pracę spowalnia dysk, ale jak się upewnić? 

 

 

Edytowane przez Lukasz team
Link to postu

Na szybko, zrobić Sobie kopię bazy danych, odpalić w Windows Monitor zasobów i sprawdzić proces sqlservr.exe - wtedy na tej kopii, lecimy Sobie z jakimiś najczęściej wykonywanymi zadaniami, albo np. masowym wykonywaniem dużych dokumentów - duplikując, albo wystawiając na podstawie FS masowe PW - coś Pan wymyśli. Tam też zaobserwuje Pan poza CPU, obciążenie dysku. Generalnie całym problemem nie jest tu tylko jedynie prędkość dysku, ale też czas dostępu, ale ten z natury, w dyskach SSD jest zdecydowanie wyższy, bo nie mają głowicy, a te na PCI Express, mają szybki dostęp do CPU.

Co do parametrów serwera, to ma Pan kawał dobrej maszyny ... oprócz dysku - magnetyk to magnetyk. Załączam Panu wyniki testu, z naszej starej 950 PRO, w dodatku, zrobione przed chwilą, przy obciążeniu ponad 30 użytkowników i to nawet jest teraz pora fakturowania ;) Wynik Sobie Pan sam może ocenić, tymbardziej, jak ma Pan wyniki z podwójnego EVO nowej generacji w RAID - u nas wynik z pojedyńczego w mirroringu, a można znaleźć lepsze dyski - brak gniazda to nie problem, są karty rozszerzeń, tylko trzeba dogadać z producentem serwerów.

obraz.png.56bfa853b14895fdafab6b2bbb22eabf.png

PS. U nas jest Windows Server 2012 + SQL Runtime 2014.

PS2. My mamy około 500 dokumentów dziennie, na 1200 pozycji, na największym z 6 podmiotów na tym serwerze. Do tego dochodzi pełna księgowość. Nikt się nie skarży.

Link to postu
17 godzin temu, Radomił Ząbik napisał:

 

Co do parametrów serwera, to ma Pan kawał dobrej maszyny ... oprócz dysku - magnetyk to magnetyk.

Te dyski to serwerowe SSD - nie dość, że kosztują po 800 zł sztuka - to jeszcze mają parametry zaledwie dobrego HDD - daleko im do konsumenckich SSD , a jeszcze dalej do NVME. Sprawdziłem obciążenie dysku - jest stosunkowo małe - przy tworzeniu dokumentów Odczyt ok. 4 MB/s, zapis ok. 1 MB/s - przy wykorzystaniu ok. 10 % procesora. Czas odpowiedzi jednakże jest dość długi - nawet 100-150 ms ( co przy SSD jest już sporą wartością). 

Faktycznie problemem może być IOPS - która w przypadku obecnego serwera dla Q32T16 przy zapisie wynosi 20220 i jest 11 razy niższa niż w starym serwerze, dla RND4K  wynosi 4816 - i jest 7 razy niższa niż w starym serwerze. 

 

Poszukam możliwości podłączenia do HP DL360 G8 dysku NVME i wykorzystania go pod VMware. Jak mi się uda - podzielę się rezultatami. 

Link to postu
Dnia 22.06.2020 o 12:15, Radomił Ząbik napisał:

Z własnego doświadczenia, wiem, że jest diametralna różnica pomiędzy Express, a Runtime - swojego czasu mieliśmy DEV na Expresie, i spowolnienie było nawet 10x przy bardzo rozbudowanych dokumentach, więc na pewno odczuje Pan różnicę, jeśli ma Pan porządny serwer.

Jedno doświadczenie to nie reguła, regułą jest, że nie ma takie przełożenia, dlatego ja nie namawiam klientów na wydanie pieniędzy na pełnego SQL'a bez upewnienia się, jaki efekt to przyniesie (rozliczenie po odebraniu prac).

 

Dnia 22.06.2020 o 12:15, Radomił Ząbik napisał:

Co do obciążania na rdzeniu, to na Runtime, na pewno bierze ich wiele, aczkolwiek u nas przy mocnym obciążeniu, SQL skacze może do 30%, dla dwóch Xeonów E5-2420 (łącznie 12 rdzeni, 24 wątki, 2.2GHz przy ciągłej pracy).

Przypomniało mi się powiedzenie wykładowcy ze studiów - 9 kobiet nie urodzi dziecka w miesiąc - większa liczba rdzeni nie zapewnia szybszego przetwarzania danych, ważne jest w jaki sposób są przetwarzane (optymalizacja o której było już wyżej) i wydajność rdzenia.

 

Dnia 22.06.2020 o 12:15, Radomił Ząbik napisał:

Ciekawe, że Express łyka te 8GB RAM, rzeczywiście powinien maksymalnie 1GB, ale tutaj zdecydowanie jest różnica, u nas potrafi i 32 łyknąć po paru tygodniach bez restartu, a regularnie to tak z 16GB.

Z założenia żaden SQL nie wykorzystuje maksymalnie 1GB pamięci RAM ! "Umowny 1GB" to jest ograniczenie na cache danych, a w różnych edycjach serwerów SQL są jeszcze dodatkowe cache oraz sam proces wykonawczy serwera SQL też zabiera znaczące ilości pamięci RAM, jeśli kogoś to ciekawi to po tylu latach (problemy te zaczęły się od SQL'a 2012) temat został wiele razy opisany w Internecie.

 

Dnia 22.06.2020 o 12:15, Radomił Ząbik napisał:

Pytanie ważne - jakie dyski twarde? Jak chcemy mieć porządną wydajność, to NVME z transferami ponad 2Gbs/s by się przydały ;)

Nie pokazujcie wyników testów wydajności dysków i nie zachwycajcie się NVME tylko przyjrzyjcie się i pokażcie "praktyczną" różnicę w wydajności pracy serwera SQL / programów Insertu na dyskach talerzowych (RAID10), SSD "serwerowych" (RAID1) i SSD NVME na pełnym serwerze SQL - obciążenia generowane przez serwer SQL przy korzystaniu z programów Insertu to nie to samo co obróbka grafiki / video, wydajność dysków nie ma takiego znaczenia jak się wam wydaje.. Nie mniej:

Dnia 22.06.2020 o 15:11, Lukasz team napisał:

Macierz RAID 1 na 2 dyskach HPE 240 GB SATA RI SFF P04556-B21. Dyski kosmicznie drogie - z mocno przeciętną wydajnością - 

Dla RND4K Q1T1 - odczyt 3 MB/s, zapis 5 MB/s.

nie napisał Pan jaki model dysku kryje się pod oznaczeniem części HP, ale nie wierzę, że ma taką niską wydajność, musi go dławić infrastruktura (maszyna wirtualna / kontroler) lub któryś dysk jest uszkodzony, proszę przeprowadzić testy bezpośrednio pod kontrolerem SATA 6Gb.

Link to postu
23 godziny temu, Daniel Kozłowski napisał:

nie napisał Pan jaki model dysku kryje się pod oznaczeniem części HP, ale nie wierzę, że ma taką niską wydajność, musi go dławić infrastruktura (maszyna wirtualna / kontroler) lub któryś dysk jest uszkodzony, proszę przeprowadzić testy bezpośrednio pod kontrolerem SATA 6Gb.

Sam dysk ma oznaczenie PM883 - więc jest to dysk samsunga na TLC z pamięcią V-NAND.  Zgodnie ze specyfikacją Random Write 4KB QD32 powinien być nie mniejszy niż 14K IOPS a dla QoS Write 4KB, QD1  czas 0,3 ms. Według testów w maszynie wirtualnej  parametry zachowane są idealnie. 

QiS Wrute 4KB, QD1 na poziomie 0,3 ms przekłada się na zapis na poziomie ok 5MB/s. 

Dysk zachowuje więc w pełni swoje parametry, ma po prostu taką wydajność. 

 

 

Ilość żądań wsadowych na sekundę zazwyczaj przekracza 2000. 

Link to postu
×
×
  • Dodaj nową pozycję...