Skocz do zawartości

SELLO - SQL - Obciążenie procesora

Polecane posty

Witajcie,

Testujemy właśnie integrację na linii Subiekt GT - Allegro za pomocą SELLO. Niestety po zainstalowaniu SELLO, połączeniu go z Subiektem i z Allegro strasznie obciąża nam bazę, serwer SQL. Procesor ma obciążenie między 85-98% praktycznie cały czas od momentu uruchomienia SELLO. W związku z tym SUBIEKT również działa z opóźnieniem, wystawianie dokumentów sprzedaży jest spowolnione, ogólnie, mówiąc kolokwialnie, komputer jest zmulony. Czy jest możliwość zoptymalizowania działania SELLO? Czy po prostu ten program tak ma? Z góry dziękuję za pomoc, Pozdrawiam

Link to postu
12 minut temu, MARCIN e-kupowanie.pl napisał:

Dużą wagę odgrywają parametry komputera. Dysk SSD i miejsce na nim, ilość RAM-u, procesor...

Sello, aż tak obciąża komputer? Do tej pory wszystko działało bez problemów. Jakie procesy musi wykonywać ten program, ażeby mieć tak duży wpływ na pracę sprzętu?!

Nawet po wyłączeniu SELLO, cały czas SQL obciąża procesor między 90-100%...

Może są w SELLO aktywowane opcje synchronizacji, które wpływają na obciążenie sprzętu?

Edytowane przez Paulina Wadowska
Link to postu

Synchronizacja, czyli pobieranie i wysyłanie danych jest procesem, który dość intensywnie korzysta z bazy SQL i w trakcie trwania takiej synchronizacji obciążenie serwera jest sprawą normalną. Pytanie, na jakim sprzęcie zainstalowany jest serwer SQL? Jaki jest tam procesor, ile ma rdzeni, ile pamięci RAM i jakie dyski, HDD czy SSD. Wszystko to wpływa na wydajność działania serwera SQL. Natomiast, jeśli Sello nie wykonuje żadnych synchronizacji (na dole w belce nic się nie kręci itp) to w zasadzie serwer SQL ma w tym momencie chwilę wolnego :)

I tutaj, w zależności od sprzętu na którym to działa, jeden sprzęt będzie obciążony w 25%, inny w 90% wykonując tę sama robotę - więc od informacji o sprzęcie trzeba zacząć.

Link to postu
35 minut temu, Paulina Wadowska napisał:

gdy Sello jest wyłączone obciąża serwer SQL

To jest fizycznie niemożliwe - no chyba, że Sello nie jest widoczne na ekranie, ale w menadżerze programów widoczny jest proces Sello.exe wiszący i wykonujący nadal jakieś operacje.

Co do sprzętu, procesor jest dwurdzeniowy, dobrze by było mieć 4 rdzenie na komputerze będącym serwerem. 4GB pamięci ram ledwie wystarcza na obsługę samego systemu Windows 10, a serwer SQL potrafi zrobić użytek z pamięci RAM co znacznie przyspiesza jego pracę, gdyż nie musi on tak często sięgać do dysku trwardego, który jest tysiące razy wolnieszy.

Dysk HDD również do najszybszych nie należy, a spodziewam się, że mowa tutaj o urządzeniu typu laptop lub jakiejś budżetowej dość wersji minikomputera, gdzie dyski HDD zwykły mieć prędkość obrotową 5400, przy standardzie dla komputerów typu PC 7200, lub 10000 dla dysków serwerowych.

Innymi słowy, sprzęt ten w każdym z 3 newralgicznych punktów jest po prostu zbyt słaby aby pełnić rolę serwera danych. Mała ilość pamięci RAM powoduje, że serwer SQL bardzo mocno korzysta z dysku twardego, który dodatkowo jest tutaj również słabym ogniwem. Dodatkowo system Windows dość intensywnie korzysta w takim przypadku z pamięci wirtualnej (czyli wykorzystywaniu dysku twardego jako pamięci RAM, zrzucanie obszarów pamięci RAM na dysk, ponowne wczytywanie w razie potrzeby skorzystania). Do tego dwa rdzenie w procesorze powodują, że w całości zużywane są na obliczenia związane z działaniem serwera SQL oraz przepychaniem nieustannie danych pomiędzy dyskiem twardym a pamięcią - przez co praca na takim komputerze staje się mało komfortowa. Trzeba zainwestować w lepszy nieco sprzęt:

Procesor z 4 rdzeniami, najlepiej dysk SSD oraz 16GB pamięci RAM i będzie sytuacja wyglądać zupełnie inaczej. Nie musi to być najnowszy sprzęt, jest wiele starszych konstrukcji, które dadzą sobie z tym radę.

  • Lubię to 1
Link to postu

Dziękuję serdecznie za jasne opisanie problemu.

Czy mógłbyś proszę podać przykładowe konfiguracje, które bez problemu powinny uciągnąć serwer SQL? Pamięć min 8GB, dysk SSD 240GB? Pytanie, czy baza danych może/powinna/nie powinna być archiwizowana na SSD? Procesor i5, czy może i7?

Edytowane przez Paulina Wadowska
Link to postu

Wszystko zależy od budżetu i tego jakie chce się mieć osiągi Ja mogę polecić:
-16 GB Ram (kości 2 x 8GB)
- Dysk SSD 512 można się pokusić nawet o wejście M.2 NVMe choć SATA podejrzewam i tak będzie wystarczające
- Procesor polecił bym  AMD Ryzen 5/7/9 serii 3--- w zależności od budżetu i zapotrzebowania będą dobrym wyborem.
Co do archiwizacji najlepiej na innym dysku zrobić sobie jakiś NAS i tam trzymać podobnego typu dane

Link to postu

Nawet ta słabsza konfiguracja jest dużo mocniejsza niż obecny sprzęt i pewne jest, że im lepszy sprzęt tym praca bardziej komfortowa. Zasadniczo wszystko sprowadza się do budżetu i akceptowalnego poziomu zadowolenia z szybkości jego działania. Tak jak piszą pozostali, dysk jest w komputerze zawsze pierwszą rzeczą, którą należy wymienić bo to od niego najbardziej zależy ogólna szybkość działania - zwłaszcza przy programach, które intensywnie korzystają z bazy danych. W drugiej kolejności postawiłbym RAM i procesor na koniec.

Link to postu

4S_MARKET poruszył jeszcze jedną bardzo ważną kwestię. Mianowicie wersja SQL Server. Jeśli jest to wersja Express, to pamięć RAM wykorzystywana przez SQL to jest max. ~1,5GB / instancja. Ograniczenia licencyjne. To czy będzie w kompie 8GB czy 16GB, to raczej nie będzie miało wpływu. Fakt. 4GB to za mało.

Link to postu

Dziękuję Wam bardzo za pomoc. Wersja SQL to SQL Express.

Pytanie jeszcze mam odnośnie samej instalacji SELLO. Subiekta mamy postawionego na serwerze SQL2K14, czy podczas instalacji, bazę danych SELLO również instalować na tej samej bazie, co jest subiekt? Czy na innej, np INSERTGT, tak jak jest to w poradniku instalacji?

Link to postu

Instalowanie dwóch instancji serwerów na jednym komputerze to nie jest dobry pomysł, bo będą one walczyć o zasoby komputera, skutkiem czego będzie to działać wolniej. Lepiej postawić dwie bazy na jednym serwerze. Taka jest przynajmniej teoria. W praktyce, niektórzy pisali z doświadczenia, że dwa serwery typu Express sprawowały się lepiej, bo przy obsłudze więcej niż jednej bazy serwer SQL może limitować maksymalne użycie pamięci dla nich. Limitów i ograniczeń serwera SQL Express jest wiele, trudno przewidzieć jak się one zachowają:

Memory: Maximum buffer pool size per instance 1410 MB

Memory: Maximum Columnstore segment cache per instance 352 MB

Memory: Maximum memory-optimized data per database 352 MB

Niektóre odnoszą się do instancji serwera, niektóre do poszczególnych baz.

 

Link to postu

Wygląda na to, że właśnie niewłaściwa instalacja SELLO była problemem. Mianowicie SELLO zostało postawione na tym samym serwerze co Subiekt, czyli SQL2K14. Rozumiem, że instalacja na osobnym serwerze, tj. np. INSERTGT powinno ograniczyć zużycie pamięci? Dziękuję za pomoc i zaangażowanie w rozwiązanie problemu.

Link to postu
14 godzin temu, Paulina Wadowska napisał:

Rozumiem, że instalacja na osobnym serwerze, tj. np. INSERTGT powinno ograniczyć zużycie pamięci?

Używanie pamięci przez programy (zwłaszcza serwer SQL) nie jest niczym złym, wręcz przeciwnie - znacząco zwiększa to wydajność pracy. Nie powinno się zatem dążyć do tego aby serwer wykorzystywał jak najmniej pamięci RAM bo to się odbije dość mocno na wydajności. Z drugiej strony, jeśli tej pamięci w komputerze jest zbyt mało i serwer zajmie znaczną jej część, to również prowadzi do spowolnienia działania ale już ze względu na to jak działa pamięć wirtualna (swap file) w systemie Windows.

Link to postu
Dnia 6.08.2020 o 08:03, Bartosz Rosa napisał:

Używanie pamięci przez programy (zwłaszcza serwer SQL) nie jest niczym złym, wręcz przeciwnie - znacząco zwiększa to wydajność pracy. Nie powinno się zatem dążyć do tego aby serwer wykorzystywał jak najmniej pamięci RAM bo to się odbije dość mocno na wydajności. Z drugiej strony, jeśli tej pamięci w komputerze jest zbyt mało i serwer zajmie znaczną jej część, to również prowadzi do spowolnienia działania ale już ze względu na to jak działa pamięć wirtualna (swap file) w systemie Windows.

Dodam jeszcze np że my aby odciążyć maszynę , używamy dodatkowego rozwiązania jakim jest "drugi serwer"  na drugiej maszynie odpalone są pozostałe procesorożerne programy a sql server jest zlinkowany z główną maszyną :) rozwiązań można zrobić multum aczkolwiek  posiadając maszynę ze 128GB pamięci ram nie wykorzystamy jej pełnej możliwości , pracując na sql w wersji express

Link to postu

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Użytkownik forum
Odpowiedz...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...