Autor Wątek: Niewykorzystana moc serwera  (Przeczytany 13500 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1257
  • Reputacja +46/-1
  • Wersja programu: Navireo
Niewykorzystana moc serwera
« dnia: Lipiec 20, 2016, 01:06:25 »
Witam

Sprzęt: 2x Xeon E5 2690 v2, 64 GB RAMu, dyski SSD Intela
OS: Win 2012 R2
SQL: 2008 (planujemy upgrade)
maszyna wirtualna, 48GB i 32 wątki do dyspozycji systemu na którym siedzi SQL
Rozmiar bazy danych Insertowskiego oprogramowania ~41GB (Subiekt + Rewizor + Gestor). W Gestorze nie trzymamy poczty.

Opis problemu: nasz sprzęt 'nudzi się' przy zapuszczaniu np. zestawienia sprzedaży wg. grup, które uparcie wykorzystuje tylko jeden wątek procesora niezależnie od tego jaki zakres dat wybieramy (1 dzień czy 1 rok) nawet gdy nic innego się nie dzieje na serwerze. Jest to tylko jeden z przykładów zapytań Insertowskich, które tak się zachowują.

Grzebałem po różnych forach SQL-owych (MAXDOP, cost threshold for parallelism) i nic nie udało mi się wskórać. Na niniejszym forum nie udało mi się znaleźć podobnego tematu. Może ktoś z Państwa miał podobny problem?

Pozdrawiam i z góry dziekuję za wskazówki

EDIT: przeklikałem kilka tematów i widziałem gdzieś wzmiankę o tym, że większość zapytań idzie jednowątkowo i chyba za wiele się nie da z tym zrobić. "Na szczęście" system używany jest przez coraz większą ilość pracowników, którzy potrafią go obciążyć od czasu do czasu :)
« Ostatnia zmiana: Lipiec 20, 2016, 03:38:09 wysłana przez yemet »

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17067
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Niewykorzystana moc serwera
« Odpowiedź #1 dnia: Lipiec 20, 2016, 09:41:20 »
Sprzęt: 2x Xeon E5 2690 v2, 64 GB RAMu, dyski SSD Intela
OS: Win 2012 R2
SQL: 2008 (planujemy upgrade)
maszyna wirtualna, 48GB i 32 wątki do dyspozycji systemu na którym siedzi SQL

Fajnie tylko nie wiadomo w jaki sposób jest wykorzystywany, liczba użytkowników, ich zadania, obciążające rozwiązania dodatkowe...

Rozmiar bazy danych Insertowskiego oprogramowania ~41GB (Subiekt + Rewizor + Gestor). W Gestorze nie trzymamy poczty.

Dlaczego nie napisałeś co zajmuje tyle miejsca ? Tutaj jest skrypt, który pokazuje takie informacje: http://www.forumsubiekta.pl/subiekt/niewykorzystywana-pelna-moc-procesora/msg19374/#msg19374.

Opis problemu: nasz sprzęt 'nudzi się' przy zapuszczaniu np. zestawienia sprzedaży wg. grup, które uparcie wykorzystuje tylko jeden wątek procesora niezależnie od tego jaki zakres dat wybieramy (1 dzień czy 1 rok) nawet gdy nic innego się nie dzieje na serwerze. Jest to tylko jeden z przykładów zapytań Insertowskich, które tak się zachowują.

To akurat kompletnie nieodpowiedni przykład... Programy Insertu nie są przygotowane pod "raportowanie" i większość zestawień wykonuje się po prostu dużo wolniej niż mogłoby się wykonywać, ale do tego trzeba przygotować/przetworzyć dane i można uzyskać niesamowite przyspieszenia.

Zupełnie innym zagadnieniem jest praca "transakcyjna" (wystawiania dokumentów, itp).

Grzebałem po różnych forach SQL-owych (MAXDOP, cost threshold for parallelism) i nic nie udało mi się wskórać.

Bo to nie jest takie proste jak dla wielu się wydaje, optymalizacja nie sprowadza się do zmiany kilku ustawień serwera SQL tylko do takiej modyfikacji struktury bazy danych i aplikacji, aby optymalizator wykonał operację jak najszybciej i wskórać można wiele.

Na niniejszym forum nie udało mi się znaleźć podobnego tematu. Może ktoś z Państwa miał podobny problem?

Ech... Na początek wątek o identycznym temacie jak Twój:
 - http://www.forumsubiekta.pl/subiekt/niewykorzystywana-pelna-moc-procesora/
jeden ze starych wątków z przykładem optymalizacji:
 - http://www.forumsubiekta.pl/subiekt/poprawa-wydajnosci-poprzez-zmiane-domyslnej-lokalizacji-plikow-serwera-ms-sql/
oraz kilka innych znalezionych "na szybko":
 - http://www.forumsubiekta.pl/subiekt/baza-navireo/
 - http://www.forumsubiekta.pl/subiekt/ograniczenia-jakie-daje-subiekt-gt/
- http://www.forumsubiekta.pl/subiekt/slaba-wydajnosc-programu/
 - http://www.forumsubiekta.pl/rachmistrz/optymalizacja-baz-inserta/
 - http://www.forumsubiekta.pl/subiekt/wolne-dzialanie-programu/
 - http://www.forumsubiekta.pl/gestor/zamulony-strasznie!/

EDIT: przeklikałem kilka tematów i widziałem gdzieś wzmiankę o tym, że większość zapytań idzie jednowątkowo i chyba za wiele się nie da z tym zrobić.

Czytaj do końca, jak pokazują powyższe wskazane wątki można zrobić wiele, ale to wymaga wiedzy i czasu, a to z kolei kosztuje.
Daniel, Białystok.

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1257
  • Reputacja +46/-1
  • Wersja programu: Navireo
Odp: Niewykorzystana moc serwera
« Odpowiedź #2 dnia: Lipiec 20, 2016, 11:56:07 »
Jestem nowy na forum więc proszę o wybaczenie. W przyszłości postaram się poprawić :)

Już uzupełniam brakujące info

Użytkowników razem ~30. Sklep internetowy - wysyłki. Dużo kontrahentów, dużo dokumentów. Pełna księgowość - Rwizor. Własny soft do obsługi zamówień spływających z neta - faktury głównie wystawiane Sferą. Przy pakowaniu paczek na 10 stanowiskach w naszym sofcie nadawane są flagi i uzupełniane pola własne.  Baza naszego softu jest niewielka w porównaniu z insertowską (~5GB). Regularnie biega kilka skryptów ale generują one niewielkie obciążenie. Grubsze zadania są wykonywane po godzinach pracy. Obciążenie procków w czasie intensywnej pracy zazwyczaj nie przekracza 50% ale zdarzają się peaki pod sam sufit.

Na wydajność podczas wystawiania dokumentów nie narzekamy. Najbardziej nas wkurzają właśnie różnorakie zestawienia, raporty zarówno fabryczne jak i nasze własne np. finanse -> operacje bankowe -> raport bankowy, który nie pyta się na wstępie o okres raportu i konta bankowego tylko mieli wszystko na 'dzisiaj' i dopiero jak skończy to można sobie parametry zmienić .

W załączniku zrzut rozmiarów tabel. Tak, kurcze wiem, że pisałem że w Gestorze maili nie trzymamy a to zajmuje prawie połowę bazy. Wpływu to na wydajność reszty spraw raczej nie ma to znaczącej bo tam siedzą tylko wysyłane mailingi a nie odbierana poczta.  Nie są nam potrzebne, wywalimy je.

Tam gdzie podpowiadał to activity monitor sql-a mam pozakładane dodatkowe indeksy. Profilera się nie tykałem, nie mój poziom wiedzy SQLowej. Jeśli są jeszcze jakieś triki ogólnego zastosowania, którymi można coś trochę poprawić to wskazówki są oczywiście mile widziane. Nie wykluczamy wsparcia odpłatnego jeśli ktoś posiada odpowiednią wiedzę i umiejętności.

Pozdrawiam








Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17067
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Niewykorzystana moc serwera
« Odpowiedź #3 dnia: Lipiec 20, 2016, 17:40:41 »
Na wydajność podczas wystawiania dokumentów nie narzekamy.

Na razie mówimy o odczuciach "subiektywnych", a nie czasach wyrażonych w sekundach, a czasy kilku sekund dla kogoś nie stanowią problemu, a dla kogoś innego są już nie do przyjęcia i nazywane jest to już "muleniem".

Najbardziej nas wkurzają właśnie różnorakie zestawienia, raporty zarówno fabryczne jak i nasze własne

Jak już pisałem do raportowania podchodzi się zupełnie inaczej niż do pracy transakcyjnej, tutaj z założenia przetwarzane są duże ilości danych i przy "prostym" ich pobieraniu i wielu wyliczeniach w locie jak robią zestawienia SQL nie da się uzyskać rozsądnej wydajności przy średnich i dużych ilościach danych. Pozostaje przygotowanie mechanizmów przygotowujących dane na potrzeby raportowania i własnych zestawień, które będą z nich korzystały. Można też sięgnąć po bardziej rozbudowane rozwiązania jak Reporting Services.

W załączniku zrzut rozmiarów tabel. Tak, kurcze wiem, że pisałem że w Gestorze maili nie trzymamy a to zajmuje prawie połowę bazy. Wpływu to na wydajność reszty spraw raczej nie ma to znaczącej bo tam siedzą tylko wysyłane mailingi a nie odbierana poczta.  Nie są nam potrzebne, wywalimy je.

Nie przejmuj się, wiele osób nie pisze prawdy na forum ;)

Tam gdzie podpowiadał to activity monitor sql-a mam pozakładane dodatkowe indeksy.

Ostrożnie z takim zgadywaniem, podpowiedzi te zwykle nie są wartościowe, czasami mogą pomóc, ale również mogą niczego nie zmienić lub zaszkodzić.

Profilera się nie tykałem, nie mój poziom wiedzy SQLowej.

Rozumiem.

Jeśli są jeszcze jakieś triki ogólnego zastosowania, którymi można coś trochę poprawić to wskazówki są oczywiście mile widziane.

Szybszego sprzętu nie ma, pełniejszego serwera SQL również, więc nie ma już prostych/siłowych rozwiązań zwiększających wydajność. Pozostało miejsce tylko i wyłączenie na optymalizację.

Nie wykluczamy wsparcia odpłatnego jeśli ktoś posiada odpowiednią wiedzę i umiejętności.

Wiedza i umiejętności są, brakuje tylko/aż czasu ;)
« Ostatnia zmiana: Lipiec 21, 2016, 17:05:31 wysłana przez dkozlowski »
Daniel, Białystok.

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17067
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Niewykorzystana moc serwera
« Odpowiedź #4 dnia: Lipiec 20, 2016, 17:44:48 »
W załączniku zrzut rozmiarów tabel.

Tak podejrzewałem, gdyż pisałeś o bardzo długim czasie zakładania roku obrotowego, teraz rozmiar 5,5 mln kont w planie kont praktycznie to potwierdza, że został popełniony bardzo duży błąd przy wdrożeniu Rewizora (lub wdrożenia w ogóle nie było) i dla kontrahentów detalicznych są generowane analityki - czy tak jest w rzeczywistości ?
Daniel, Białystok.

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1257
  • Reputacja +46/-1
  • Wersja programu: Navireo
Odp: Niewykorzystana moc serwera
« Odpowiedź #5 dnia: Lipiec 20, 2016, 18:00:00 »
Tak, każdy 'Jaś Kowalski' ma swoją analitykę nadawaną przez osobny programik bo automacik Rewizora dawno się już poddał po tym jak dojechał do 99999. Analityki zawierają teraz również literki.

Wdrożenie jakieś tam było, sami tego byśmy na pewno nie dali ogarnąć. W księgowych sprawach orientuję się tyle ile muszę - czyli niewiele :). Czy te osobne analityki to złe czy dobre podejście - tego nie wiem. Nasze księgowe twierdzą, że nie wyobrażają sobie ogarniania rozrachunków przy wrzuceniu wszystkich Kowalski do jednego wora.

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17067
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Niewykorzystana moc serwera
« Odpowiedź #6 dnia: Lipiec 20, 2016, 18:18:35 »
Tak, każdy 'Jaś Kowalski' ma swoją analitykę nadawaną przez osobny programik bo automacik Rewizora dawno się już poddał po tym jak dojechał do 99999. Analityki zawierają teraz również literki.

Ech, skąd takie pomysły ? :o Wystarczy wyłączyć uzupełnianie luk podczas nadawania numerów analityk. Przy takiej liczbie kontrahentów nadanie analityki trwa już dosyć długo, można trochę przyspieszyć, ale nie tak jak być powinno, gdyż główny problem leży w aplikacji.

Wdrożenie jakieś tam było, sami tego byśmy na pewno nie dali ogarnąć. W księgowych sprawach orientuję się tyle ile muszę - czyli niewiele :). Czy te osobne analityki to złe czy dobre podejście - tego nie wiem.

Zdecydowanie złe i bez sensu, sam widzisz jakie problemy to generuje, jak mocno to być może doda coś od siebie @Aldo.

Nasze księgowe twierdzą, że nie wyobrażają sobie ogarniania rozrachunków przy wrzuceniu wszystkich Kowalski do jednego wora.

Jakiego jednego wora ? Przecież rozrachunki można i trzeba prowadzić z każdym kontrahentem, ale dopiero w księgowości można je wrzucić do jednego wora (na jedno konto). Inne księgowe, które znam nie wyobrażają sobie takiego bałaganu w planie kont.
Daniel, Białystok.

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1257
  • Reputacja +46/-1
  • Wersja programu: Navireo
Odp: Niewykorzystana moc serwera
« Odpowiedź #7 dnia: Lipiec 20, 2016, 19:21:13 »
Tak nadawanie analityk trwa długo min. dlatego robi to osobny program bo by nas szlag trafił. Serwer chodzi 24/7 a program odpala się o określonej godzinie wieczorem codziennie i nadaje analityki nowym kontrahentom, którzy mają wystawione jakieś dokumenty (nie są nadawane anylityki kontrahentom bez dokumentów). Program sam zapycha napotkane luki w analitykach.



Pisząc o jednym worze miałem na myśli oczywiście konto księgowe a nie rozrachunki jako takie. Rozliczenia - wpłaty / wypłaty etc. są prowadzone w Subiekcie. Nie ode mnie to zależało, nie posiadałem i nie posiadam odpowiedniej wiedzy. No i kto ma ochotę kłócić się z księgową jak ma sobie konta układać... Według obu Pań pierdyliard analityk jest OK :)


Wracając do literek w analitykach - kontrahentów jest ponad 300K i prawie tyleż samo analityk. Po dojściu do 99999 Rewizor się poddał i nie nadawał analityki z automatu bo się numerki skończyły. Serwisant, z którego usług korzystamy twierdził, że Rewizora nie da się zmusić do wrzucania literek w analitykach i nie widział innej opcji jak osobny soft do ogarnięcia tego. Żeby nie było że naciąga nas na swoje usługi - program napisali nam ludzie, którzy rozwijają nam cały czas nasz soft do obsługi zamówień. Z serwisantem znamy się krócej i na 99% się nie znają.


Od tamtego czasu moja wiedza z zakresu SQLa troszke się poszerzyła i jak ktoś teraz napisze, że np. można bezkarnie zmienić w bazie kh_NrAnalitykaO z varchar(5) np. na varchar(10) albo jakiś inny bzdet przestawić w konfiguracji Rewizora i wsio by dalej śmigało to chyba mnie szlag trafi  ;D


Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17067
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Niewykorzystana moc serwera
« Odpowiedź #8 dnia: Lipiec 20, 2016, 20:15:39 »
Tak nadawanie analityk trwa długo min. dlatego robi to osobny program bo by nas szlag trafił. Serwer chodzi 24/7 a program odpala się o określonej godzinie wieczorem codziennie i nadaje analityki nowym kontrahentom, którzy mają wystawione jakieś dokumenty (nie są nadawane anylityki kontrahentom bez dokumentów). Program sam zapycha napotkane luki w analitykach.

Po pierwsze można przyspieszyć nadawani analityk, po drugie praktycznie wszystkie analityki nadajecie zbędnie.

Pisząc o jednym worze miałem na myśli oczywiście konto księgowe a nie rozrachunki jako takie. Rozliczenia - wpłaty / wypłaty etc. są prowadzone w Subiekcie. Nie ode mnie to zależało, nie posiadałem i nie posiadam odpowiedniej wiedzy. No i kto ma ochotę kłócić się z księgową jak ma sobie konta układać... Według obu Pań pierdyliard analityk jest OK :)

To tylko świadczy o tych księgowych.

Wracając do literek w analitykach - kontrahentów jest ponad 300K i prawie tyleż samo analityk. Po dojściu do 99999 Rewizor się poddał i nie nadawał analityki z automatu bo się numerki skończyły.

Już podałem rozwiązanie problemu. Nie mniej jest ograniczenie wbudowanego mechanizmu, analityki literowe są obsługiwane tylko na pierwszej pozycji, ale przy "normalnym" korzystaniu z programu taka ilość się nie pojawi.

Serwisant, z którego usług korzystamy twierdził, że Rewizora nie da się zmusić do wrzucania literek w analitykach i nie widział innej opcji jak osobny soft do ogarnięcia tego. Żeby nie było że naciąga nas na swoje usługi - program napisali nam ludzie, którzy rozwijają nam cały czas nasz soft do obsługi zamówień. Z serwisantem znamy się krócej i na 99% się nie znają.

Oby takich "serwisantów" jak najmniej, jeśli się czegoś nie wie to należy się dowiedzieć, gdyby poszukał lub zadał pytanie to otrzymałby odpowiedź z rozwiązaniem, a tak wprowadził was i jak teraz wygląda ?
« Ostatnia zmiana: Lipiec 21, 2016, 17:06:18 wysłana przez dkozlowski »
Daniel, Białystok.

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1257
  • Reputacja +46/-1
  • Wersja programu: Navireo
Odp: Niewykorzystana moc serwera
« Odpowiedź #9 dnia: Lipiec 20, 2016, 21:35:53 »
Akurat Pan serwisant bogu ducha winny jeśli mowa o samym planie kont bo to nie on podjął decyzję w tym zakresie.

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17067
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Niewykorzystana moc serwera
« Odpowiedź #10 dnia: Lipiec 20, 2016, 22:11:49 »
Akurat Pan serwisant bogu ducha winny jeśli mowa o samym planie kont bo to nie on podjął decyzję w tym zakresie.

Przeczytaj na spokojnie co napisałem. To oczywiście wasza wina, "serwisant" wprowadził was błąd w związku z problemem z nadawaniem analityk.
« Ostatnia zmiana: Lipiec 21, 2016, 17:07:25 wysłana przez dkozlowski »
Daniel, Białystok.

Offline Aldo

  • Ekspert
  • *****
  • Wiadomości: 10695
  • Reputacja +433/-13
  • Wersja programu: najnowsza
Odp: Niewykorzystana moc serwera
« Odpowiedź #11 dnia: Lipiec 21, 2016, 16:30:39 »
Akurat Pan serwisant bogu ducha winny jeśli mowa o samym planie kont bo to nie on podjął decyzję w tym zakresie.

Przepraszam, ale co to za księgowe? Czy one kiedykolwoek poza Wami prowadziły pełna księgowość?
Takie podejście, to jest totalna bzdura.
Sprzedaż paragonowa jest płatna najczęście dwoma formami - gotówka i płatnośc kartą. Pod pojęcie kartą keyją się możliwości płątnośco zadalnej w każdym rozwiązaniu. Są to rozrachunki, które praktycznie same się zamykają i nie trzeba do tego miliona kont analitycznych. Mam sporą praktyykę i wdrożeniową i księgową, ale takie z takim czymś spotykam się pierwszy raz.
Ale jak "księgowe" tak rządzą, to niedługo będziecie musieli przejść na SAPA i to w pełym wymiarze.
Współczuję.

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1257
  • Reputacja +46/-1
  • Wersja programu: Navireo
Odp: Niewykorzystana moc serwera
« Odpowiedź #12 dnia: Lipiec 21, 2016, 16:45:24 »
Paragony to u nas margines jeśli chodzi o ilość dokumentów. Wystawiamy je tylko dla zakupów dokonywanych  bezpośrednio na miejscu.

Wszystko co jest wysyłane pocztą, kurierem czy inpostem jest bezwzględnie fakturowane. Faktury liczone od brutto są fiskalizowane. Każda większa działalność, którą znamy tak robi.

Damage is done ale czy da się coś jeszcze z tym zrobić, np. na następny rok zmiana planu kont?

EDIT: Czy może jest aż tak źle, że lepiej założyć nową bazę i przenieść co potrzebne ze starej - towary, kontrahenci, rozrachunki etc.?
« Ostatnia zmiana: Lipiec 21, 2016, 17:04:41 wysłana przez yemet »

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1257
  • Reputacja +46/-1
  • Wersja programu: Navireo
Odp: Niewykorzystana moc serwera
« Odpowiedź #13 dnia: Lipiec 21, 2016, 17:00:07 »
@dkozlowski - a pro dodatkowych indeksów w bazie. Do wszystkich, które pozakładałem mam zapisane w osobnym pliku zapytania także mogę je powywalać i obserwować wpływ na jakość pracy.

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17067
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Niewykorzystana moc serwera
« Odpowiedź #14 dnia: Lipiec 21, 2016, 17:04:45 »
Paragony to u nas margines jeśli chodzi o ilość dokumentów. Wystawiamy je tylko dla zakupów dokonywanych  bezpośrednio na miejscu.

Wszystko co jest wysyłane pocztą, kurierem czy inpostem jest bezwzględnie fakturowane. Faktury liczone od brutto są fiskalizowane. Każda większa działalność, którą znamy tak robi.

Nie jest ważny typ dokumentu tylko rodzaj kontrahenta - wszystkie dokumenty dla osób fizycznych powinny lądować na jednym koncie.

Damage is done ale czy da się coś jeszcze z tym zrobić, np. na następny rok zmiana planu kont?

Da się, od nowego roku usunięcie danych księgowych, usunięcie analityk kontrahentów i dekretacja jak należy.

@dkozlowski - a pro dodatkowych indeksów w bazie. Do wszystkich, które pozakładałem mam zapisane w osobnym pliku zapytania także mogę je powywalać i obserwować wpływ na jakość pracy.

Jeśli się nic nie pogorszyło to może zostać.
Daniel, Białystok.

Forum Użytkownikow Subiekt GT

Odp: Niewykorzystana moc serwera
« Odpowiedź #14 dnia: Lipiec 21, 2016, 17:04:45 »