Skocz do zawartości
Forum użytkowników
Paulina Wadowska

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

Udostępnij ten post


Link to postu
Napisano (edytowany)
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?

Edytowano przez Paulina Wadowska

Udostępnij ten post


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ąć.

Udostępnij ten post


Link to postu

No właśnie problem jest tego typu, że nawet gdy Sello jest wyłączone obciąża serwer SQL. Odinstalowaliśmy Sello, problem ustąpił.

Sprzęt:

i3 - 4130

4GB RAM

System WIN 10 Pro 64bit

Dysk HDD

Udostępnij ten post


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

Udostępnij ten post


Link to postu
Napisano (edytowany)

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?

Edytowano przez Paulina Wadowska

Udostępnij ten post


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

Udostępnij ten post


Link to postu

Komputer w sklepie, budżet jak najniższy, wymagania, normalna, komfortowa praca (jak miało to miejsce do momentu instalacji SELLO). Najchętniej coś poleasingowego:

np,:

Procesor: Intel® Core™ i7-4770
Pamięć RAM: 8GB DDR3
Dysk Twardy: 240GB SSD
Obudowa:    DELL SFF - Small Form Factor

 

Udostępnij ten post


Link to postu

Jak patrzę na swoje obciążenie serwera, to zdecydowanie 8GB to za mało, chyba że dołożyć później, jeśli jest możliwość

Udostępnij ten post


Link to postu

8GB RAM starczy. Z doświadczenia, najważniejszy dysk i ogarnięta sieć. I5 procesor na spokojnie, nawet jakiś 2400. Dysk to SSD. Chyba, że bardzo zależy na wydajności to SSD NVMe. Pare lat doświadczeń z sello i mogę stwierdzić, że dysk najważniejszy.

Udostępnij ten post


Link to postu

To może inaczej:

Sprzęt:

Procesor: Intel® Core™ i7-4770
Pamięć RAM: 16GB DDR3
Dysk Twardy: 240GB SSD
Obudowa:    DELL SFF - Small Form Factor

Cena 1376pln brutto

lub

Producent: Dell
Procesor: Intel® Core™ i5-4570
Obudowa: SFF
Pamięć RAM: 8GB DDR3
Dysk Twardy: 240GB SSD

882pln brutto

 

Udostępnij ten post


Link to postu

Wiadomo że opcja pierwsza , choćby nawet z tego względu że 16GB ramu pozwoli na swobodną pracę , o ile masz pełnego SQL a nie wersje express

Udostępnij ten post


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.

Udostępnij ten post


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.

Udostępnij ten post


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?

Udostępnij ten post


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.

 

Udostępnij ten post


Link to postu

Bartoszu, jeśli mogę się tak zwrócić, Warto też wspomnieć o ograniczeniu Expressa dotyczącym wielkości bazy, które wynosi 10GB. Przy Sello ma to dość szczególne znaczenie, ponieważ w bazie przechowywane są zdjęcia jako ciąg bajtów.

  • Lubię to 1

Udostępnij ten post


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.

Udostępnij ten post


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.

Udostępnij ten post


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

Udostępnij ten post


Link to postu

×