- 1. Aktualny stan
- 2. Pytania wyjaśniające
- 3. 3 główne rodzaje problemów
- 3.1 Problemy z nieoptymalnym kodem, operacje są wykonywane przez długi czas:
- 3.2 Problemy z obciążeniem sprzętu
- 3.3 Problemy z równoległą pracą użytkownika
- 4. Wnioski
- Zobacz także:
Dzień dobry, przyjaciele! Dzisiaj chcę opowiedzieć o ogólnym podejściu do rozwiązywania problemów z wydajnością. Ten artykuł będzie małym praktycznym przewodnikiem „W jaki sposób podejść do tej bestii”, jeśli masz problem z wydajnością 1C.
1. Aktualny stan
Więc pacjent przyszedł do nas i zaczęliśmy go badać. Najpierw musimy określić: pacjent umiera lub pacjent jest chory. W zależności od tego metody leczenia będą się różnić.
- Pacjent umiera . Kluczowe operacje nie są wykonywane, są nieznośnie długie, wszystko jest w błędzie, blokowanie, nic nie działa, klient jest w panice. Potrzebujesz resuscytacji . Ta sytuacja charakteryzuje się tym, że wszystkie problemy są wyraźnie widoczne, nie potrzebujemy żadnych APDEX-ów, żmudnych pomiarów i innych działań, których uczymy się na kursach dotyczących wydajności. Jedyne, co musimy zrobić, to upewnić się, że baza działa.
- Pacjent jest chory . W tej sytuacji system działa, ale jego wydajność jest niezadowalająca. W tej sytuacji nie ma potrzeby natychmiastowego rozwiązywania problemów. Faktem jest, że kluczem do sukcesu naszej pracy będzie osiągnięcie dobrej wydajności systemu. Ale czym jest dobra wydajność? Zdecydowanie musimy określić ten stan końcowy. Używamy tutaj techniki APDEX, jak dotąd nic nie zostało przemyślane. Korzystając z tej techniki, określimy aktualny stan systemu i stan, który musimy osiągnąć. Możesz przeczytać o tej technice tutaj . Ale najważniejszą rzeczą, którą musimy zrobić na początkowym etapie leczenia, jest ustaw liczniki na kluczowych operacjach i zacznij zbierać informacje o czasie ich wykonania.
2. Pytania wyjaśniające
Świetnie, poradziliśmy sobie z głównymi objawami choroby. Następnie przyjrzymy się problemom bardziej szczegółowo, zadamy odpowiednie pytania i będziemy w stanie określić, jakie są te problemy i jak się poruszamy.
Pytania do klienta:
- Co dokładnie zwalnia? Oddzielne typy dokumentów, katalogów, raportów lub wszystkie naraz? Jeśli poszczególne obiekty są zablokowane, oczywiste jest, że problemy dotyczą właśnie tych obiektów lub interakcji z nimi. Najprawdopodobniej kod nie jest optymalnie napisany lub blokuje konflikty. Jeśli wszystko spowolni, zaczynając od przeprowadzenia RTD, a kończąc na otwarciu książki referencyjnej nomenklatury, problem ma charakter ogólny i nie można naprawdę spojrzeć na kod, ale sprawdzić ogólną wydajność systemu i sprzętu.
- Czy zwalniają, aby otworzyć lub nagrywać / prowadzić? Albo wszystko naraz? Te informacje powiedzą nam, czy występują problemy „do czytania” lub „do pisania”, lub oba problemy są obecne.
- Czy problemy zaczęły się płynnie, niezauważalnie lub nagle? Jeśli drastycznie, czy były jakieś zmiany w infrastrukturze? Na przykład zmieniono nową wersję platformy lub sprzętu. Jeśli problemy pojawiły się płynnie, to najprawdopodobniej są one związane ze wzrostem bazy / wzrostem liczby użytkowników / wzrostem przepływu pracy. Jeśli problemy pojawią się nagle, należy szukać problemów w sprzęcie, systemie 1C (błędy platformy, klaster serwerów itp.)
- Czy problemy pojawiają się z taką samą intensywnością w ciągu dnia, czy inaczej? Czy intensywność problemów zależy od liczby jednocześnie pracujących użytkowników? Jeśli intensywność problemów jest taka sama, to nic dla nas nie zrobi, ale jeśli klient powie, że rano wszystko jest w porządku i nie można pracować w porze lunchu, to prawdopodobne są problemy związane ze wzrostem liczby pracujących użytkowników do połowy dnia i wzrost przepływu pracy. Tutaj trzeba spojrzeć na obciążenie sprzętem i problemy równoległej pracy użytkowników.
- Jakie są inne problemy? Błędy limitu czasu blokady, błędy zakleszczenia? Jeśli są błędy związane z blokadami transakcyjnymi, a użytkownicy narzekają na nie, to z pewnością występują problemy z działaniem równoległym.
3. 3 główne rodzaje problemów
Podsumowując, możemy wyróżnić 3 główne typy problemów:
- Problemy z nieoptymalnym kodem, operacje trwają długo.
- Problemy z obciążeniem sprzętu
- Problemy równoległej pracy użytkowników
Musimy ustalić, jaki mamy problem. W zależności od rodzaju problemów przechodzimy przez różne rozwiązania.
3.1 Problemy z nieoptymalnym kodem, operacje są wykonywane przez długi czas:
Objawy: problemy przejawiają się w trybie pojedynczego użytkownika, aw trybie wieloosobowym - takie same. Sprzęt nie jest załadowany, ale dokument jest przechowywany przez bardzo długi czas lub raport jest generowany przez bardzo długi czas.
Aby znaleźć przyczyny takich problemów, potrzebujemy standardowego pomiaru wydajności. Dokonujemy pomiaru zachowania, znajdujemy najtrudniejszą operację, patrzymy na / optymalizujemy, cieszymy się. To najłatwiejszy przypadek.
3.2 Problemy z obciążeniem sprzętu
Objawy: wszystko zwalnia liczniki wyposażenia „Going wild”. Ten problem jest nieco bardziej skomplikowany. Ponieważ Przyczyn może być kilka. Konieczne jest określenie, dlaczego sprzęt jest tak załadowany. Wyświetl monitor aktywności SQL w przypadku najcięższych zapytań, a także dołącz zbiór dziennika technologicznego z najcięższymi zapytaniami. Jeśli istnieje PCO, to zbieraj pomiary używając go i analizuj. Najczęściej powodem jest jedna z dwóch rzeczy: albo istnieją bardzo ciężkie, nieoptymalne operacje, które zajmują prawie wszystkie zasoby sprzętu (w ostatnim artykule, o którym wspomniałem przykład ) lub, jeśli nie znaleziono takich operacji, wszystko działa prawidłowo, problemem jest niewystarczająca wydajność sprzętu. Ale zawsze pamiętaj! Zanim powiesz klientowi, że nie ma wystarczającego sprzętu produkcyjnego, upewnij się, że tak rzeczywiście jest, a wszystkie inne powody są wykluczone. Ponieważ gdy klient kupuje nowy serwer za $$$ i wszystko będzie działać dla niego równie wolno, „będzie bardzo zaskoczony i smutny”.
3.3 Problemy z równoległą pracą użytkownika
Objawy: będzie wiele objawów. Błędy, jak na przykład na tych zrzutach ekranu, tj. konflikty blokujące.
To oczywiste obvious. A teraz inne objawy:
Wszystko powoli zwalnia. Na przykład rano wszystko jest dobre, a na obiad złe. W trybie pojedynczego użytkownika wszystko „leci”, aw trybie wieloosobowym zwalnia. Te same działania trwają „albo 5 sekund, albo 40”. Staje się jasne, że użytkownicy są ze sobą w konflikcie.
Tutaj nie wyjdziemy z prostym pomiarem wydajności, ponieważ on niczego nie pokaże. W idealnym przypadku wymagany jest 1C: MCC. Dzięki niemu możesz mierzyć i analizować procesy problemowe. MCC ma jednak bardzo małą liczbę klientów i konieczne jest wyszukiwanie takich problemów za pomocą standardowych środków przy użyciu MSSQL i dziennika technologicznego 1C.
4. Wnioski
Podsumowując, chciałbym powiedzieć, że zdecydowanie musisz sprawdzić, czy nie występują problemy z wydajnością:
- Ustawienia DBMS. Na przykład w ostatnim przykładzie w ustawieniach DBMS został określony użycie niewielkiej ilości pamięci . Z tego powodu duże tabele nie mogły być buforowane, a dane były odczytywane bezpośrednio z dysków, intensywnie ładując podsystem dyskowy.
- Wydanie platformy. Tak, nie wszystkie wersje są stabilne. Czasami problem leży w błędach wydania, o których można przeczytać w raportach o błędach i na forum partnera.
- Rutynowe operacje na bazach danych, znaczenie statystyki, fragmentacja indeksu. Znaczenie statystyk i fragmentacji indeksu bezpośrednio wpływa na wydajność, należy monitorować wydajność rutynowych operacji.
Zobacz także:
- Historia jednej optymalizacji
Cześć wszystkim Dzisiaj opowiem wam historię jednej optymalizacji lub przywrócenia normalnej pracy w <Nazwa firmy>. Objawy zostały ogłoszone w następujący sposób: ogólna słaba wydajność systemu: ...
- Uwagi z przodu optymalizacji
Dzień dobry, przyjaciele! Dzisiaj opowiem wam historię optymalizacji typowego zapytania SCP podczas przywracania sekwencji obliczeń. Będzie wiele listów, ale interesujące. Zoptymalizujemy na trzy sposoby: początkujący, średni, wysoki. Chodźmy! ...
- Zasady zakończenia typowych konfiguracji 1C
Podczas tego seminarium internetowego omówię zasady i techniki stosowane w naszej firmie, aby udoskonalić typowe konfiguracje 1C, aby ułatwić ich dalsze wsparcie i aktualizację. Materiały użyte w filmie ...
Oddzielne typy dokumentów, katalogów, raportów lub wszystkie naraz?
Czy zwalniają, aby otworzyć lub nagrywać / prowadzić?
Albo wszystko naraz?
Czy problemy zaczęły się płynnie, niezauważalnie lub nagle?
Jeśli drastycznie, czy były jakieś zmiany w infrastrukturze?
Czy intensywność problemów zależy od liczby jednocześnie pracujących użytkowników?
Jakie są inne problemy?
Błędy limitu czasu blokady, błędy zakleszczenia?