Dlaczego hamulce 1C. Tryb pliku
- Zużycie zasobów, pierwsze spojrzenie
- Sieć
- Serwer podsystemu dysku i dysk SSD
- Podsystem dysku klienta i dysk SSD
- RAM
- Procesor
- Wnioski
Ostatnio użytkownicy i administratorzy coraz częściej zaczynają narzekać, że nowe konfiguracje 1C, opracowane na podstawie zarządzanej aplikacji, są powolne, w niektórych przypadkach niedopuszczalnie wolne. Jasne jest, że nowe konfiguracje zawierają nowe funkcje i możliwości, a zatem są bardziej wymagające pod względem zasobów, ale większość użytkowników nie rozumie, co przede wszystkim wpływa na działanie 1C w trybie plików. Spróbujemy naprawić tę lukę.
W naszym wcześniejsze publikacje zajmowaliśmy się już wpływem wydajności podsystemu dyskowego na szybkość 1C, jednak badanie to dotyczyło lokalnego użycia aplikacji na oddzielnym komputerze PC lub serwerze terminali. Jednocześnie większość małych wdrożeń wymaga pracy z bazą plików w sieci, w której jeden z komputerów użytkownika jest używany jako serwer lub dedykowany serwer plików oparty na zwykłym, często również niedrogim komputerze.
Niewielkie badanie rosyjskojęzycznych zasobów w 1C wykazało, że problem ten jest starannie unikany, w przypadku problemów zwykle zaleca się przełączenie na tryb klient-serwer lub terminal. Prawie powszechnie przyjęto również, że konfiguracje w zarządzanej aplikacji działają znacznie wolniej niż zwykle. Z reguły argumenty są „żelazne”: „tutaj właśnie przeleciał Rachunkowość 2.0, a trojka ledwo się porusza, oczywiście, w tych słowach jest trochę prawdy, więc spróbujmy to rozgryźć.
Zużycie zasobów, pierwsze spojrzenie
Przed rozpoczęciem tego badania postawiliśmy sobie dwa zadania: dowiedzieć się, czy konfiguracje oparte na zarządzanej aplikacji są naprawdę wolniejsze niż zwykle i które zasoby mają podstawowy wpływ na wydajność.
Do testów wzięliśmy dwie maszyny wirtualne z systemem Windows Server 2012 R2 i Windows 8.1, odpowiednio, przydzielając 2 rdzenie hosta Core i5-4670 i 2 GB pamięci RAM na każdą, co odpowiada w przybliżeniu średniej maszynie biurowej. Serwer jest umieszczony na macierzy RAID 0 dwóch Wd se , a klient na podobnej tablicy dysków ogólnego przeznaczenia.
Wybraliśmy kilka konfiguracji Accounting 2.0, wersja 2.0.64.12 , które następnie zaktualizowano do wersji 3.0.38.52 , jako bazy eksperymentalne, wszystkie konfiguracje zostały uruchomione na platformie 8.3.5.1443 .
Pierwszą rzeczą, która przyciąga uwagę, jest zwiększony rozmiar bazy informacyjnej trojki, która znacznie wzrosła, a także znacznie większe apetyty na RAM:
Jesteśmy już gotowi usłyszeć zwykłe: „tak, dlaczego dodali coś takiego do tej trójki”, ale nie śpieszmy się. W przeciwieństwie do użytkowników w wersji klient-serwer, którzy wymagają mniej lub bardziej wykwalifikowanego administratora, użytkownicy wersji plików rzadko myślą o konserwacji bazy danych. Rzadko też myślę o tej służbie (czytaj - aktualizacja), tych bazach, pracownikach wyspecjalizowanych firm.
Tymczasem baza informacyjna 1C jest pełnoprawnym DBMS w swoim własnym formacie, który również wymaga konserwacji i istnieje nawet narzędzie do tego, o nazwie Testowanie i korygowanie bazy informacyjnej . Prawdopodobnie podstęp przyjął nazwę, która w jakiś sposób sugeruje, że jest to narzędzie do rozwiązywania problemów, ale słaba wydajność jest również problemem, a restrukturyzacja i ponowne indeksowanie, wraz z kompresją tabel, są dobrze znane każdemu administratorowi DBMS środki optymalizacji bazy danych. Sprawdź?
Po zastosowaniu wybranych działań baza danych gwałtownie straciła na wadze, stając się jeszcze mniejsza niż dwie, których nikt nigdy nie zoptymalizował, a zużycie pamięci RAM również nieznacznie spadło.
Następnie po pobraniu nowych klasyfikatorów i katalogów, utworzeniu indeksów itp. rozmiar bazy wzrośnie jako całość, podstawy „trojki” są większe niż podstawy „dwóch”. Jest to jednak ważniejsze, jeśli druga wersja zawierała 150-200 MB pamięci RAM, nowa edycja potrzebuje pół gigabajta, a wartość ta powinna opierać się na planowaniu niezbędnych zasobów do pracy z programem.
Sieć
Przepustowość sieci jest jednym z najważniejszych parametrów dla aplikacji sieciowych, zwłaszcza jako 1C w trybie plików, przenoszącym duże ilości danych w sieci. Większość sieci małych przedsiębiorstw opiera się na tanich urządzeniach o przepustowości 100 Mbit / s, dlatego rozpoczęliśmy testy dokładnie porównując wskaźniki wydajności 1C w sieciach 100 Mbit / s oraz 1 Gbit / s.
Co się stanie, gdy uruchomisz bazę plików 1C w sieci? Klient pobiera wystarczająco dużo informacji do folderów tymczasowych, zwłaszcza jeśli jest to pierwsze uruchomienie „zimne”. Przy 100 Mbit / s spodziewamy się spoczywać na szerokości kanału i pobieranie może zająć dużo czasu, w naszym przypadku około 40 sekund (cena dzielenia wykresu wynosi 4 sekundy).
Drugie uruchomienie jest szybsze, ponieważ niektóre dane są przechowywane w pamięci podręcznej i są tam aż do ponownego uruchomienia. Przejście do sieci gigabitowej może znacznie przyspieszyć ładowanie programu, zarówno „zimnego”, jak i „gorącego”, a stosunek wartości jest obserwowany. Dlatego zdecydowaliśmy się wyrazić wynik w wartościach względnych, przyjmując największą wartość każdego pomiaru jako 100%:
Jak widać na wykresach, Księgowość 2.0 jest ładowana z dowolną prędkością sieciową dwa razy szybciej, przejście z 100 Mb / s na 1 Gb / s umożliwia czterokrotne przyspieszenie czasu pobierania. W tym trybie nie ma różnicy między zoptymalizowanymi i niezoptymalizowanymi podstawami trojki.
Sprawdziliśmy również wpływ prędkości sieci na pracę w trudnych warunkach, na przykład przy zmianie trasy grupy. Wynik wyraża się również w wartościach względnych:
Tutaj jest bardziej interesujące, zoptymalizowana baza „trzech” w sieci 100 Mbit / s działa z taką samą prędkością jak „dwa”, a niezoptymalizowana pokazuje dwa razy najgorszy wynik. Na gigabitach proporcje są zachowane, niezoptymalizowany „potrójny” jest również dwa razy wolniejszy niż „dwa”, a zoptymalizowany jest opóźniony o jedną trzecią. Również przejście na 1 Gbit / s pozwala skrócić czas spędzony trzy razy w wersji 2.0 i dwa razy w wersji 3.0.
Aby ocenić wpływ prędkości sieci na codzienną pracę, użyliśmy pomiaru wydajności, wykonując szereg predefiniowanych działań w każdej bazie.
W rzeczywistości, w codziennych zadaniach przepustowość sieci nie jest wąskim gardłem, niezoptymalizowana „trojka” jest tylko o 20% wolniejsza niż dwie, a po optymalizacji okazuje się, że jest tak szybka jak zalety pracy w trybie cienkiego klienta. Przejście do 1 Gb / s nie daje żadnych zoptymalizowanych podstaw żadnych korzyści, a nieoptymalizowane i dwa zaczynają działać szybciej, pokazując niewielką różnicę między sobą.
Z przeprowadzonych testów wynika, że sieć nie jest wąskim gardłem dla nowych konfiguracji, a zarządzana aplikacja działa jeszcze szybciej niż zwykle. Możesz również zalecić przełączenie na 1 Gbit / s, jeśli ciężkie zadania i szybkość ładowania bazy danych są dla Ciebie krytyczne, w przeciwnym razie nowe konfiguracje umożliwiają wydajną pracę nawet w wolnych sieciach 100 Mbit / s.
Więc dlaczego hamuje 1C? Zrozumiemy dalej.
Serwer podsystemu dysku i dysk SSD
W przeszłości osiągnęliśmy wzrost wydajności 1C, umieszczając bazę na dysku SSD. Być może za mało podsystemu dysku serwera wydajności? Dokonaliśmy pomiarów wydajności serwera dyskowego podczas spotkania grupowego w dwóch bazach danych jednocześnie i uzyskaliśmy dość optymistyczny wynik.
Pomimo stosunkowo dużej liczby operacji we / wy na sekundę (IOPS) - 913, długość kolejki nie przekroczyła 1,84, co jest bardzo dobrym wynikiem dla macierzy z dwoma dyskami. Na tej podstawie można założyć, że lustra ze zwykłych dysków wystarczą do normalnej pracy 8-10 klientów sieciowych w trybach ciężkich.
Czy potrzebujesz SSD na serwerze? Najlepszym sposobem na odpowiedź na to pytanie będzie testowanie, które przeprowadziliśmy podobną metodą, połączenie sieciowe wszędzie 1 Gb / s, wynik jest również wyrażony w wartościach względnych.
Zacznijmy od szybkości ładowania bazy danych.
Może to być dla kogoś zaskakujące, ale nie wpływa na szybkość ładowania bazy danych SSD na serwerze. Głównym ograniczeniem tutaj, jak pokazano w poprzednim teście, przepustowość sieci i wydajność klienta.
Przejdźmy do ponownego zgłoszenia:
Powyżej zauważyliśmy już, że wydajność dysku jest wystarczająca nawet w przypadku ciężkich operacji, dlatego prędkość SSD również nie działa, z wyjątkiem niezoptymalizowanej bazy danych, która dogoniła zoptymalizowany dysk SSD. W rzeczywistości po raz kolejny potwierdza to, że operacje optymalizacyjne organizują informacje w bazie danych, zmniejszając liczbę losowych operacji wejścia-wyjścia i zwiększając szybkość dostępu do nich.
W codziennych zadaniach obraz jest podobny:
Tylko niezoptymalizowane zyski bazowe z dysku SSD. Oczywiście możesz kupić dysk SSD, ale o wiele lepiej będzie pomyśleć o terminowej konserwacji bazy danych. Nie zapomnij także o defragmentacji sekcji bazy danych informacji na serwerze.
Podsystem dysku klienta i dysk SSD
Wpływ SSD na szybkość działania lokalnie zainstalowanego 1C, przeanalizowaliśmy w poprzedni materiał wiele z tego, co zostało powiedziane, dotyczy pracy w trybie sieciowym. Rzeczywiście, 1C dość aktywnie korzysta z zasobów dysku, w tym w tle i rutynowych zadań. Na poniższym rysunku widać, jak Bookkeeping 3.0 dość aktywnie uzyskuje dostęp do dysku przez około 40 sekund po załadowaniu.
Ale jednocześnie należy zdać sobie sprawę, że dla stacji roboczej, na której wykonywana jest aktywna praca z jedną lub dwiema bazami informacji, zasoby wydajności konwencjonalnej serii masowej HDD są wystarczające. Przejęcie SSD może przyspieszyć niektóre procesy, ale nie zauważysz radykalnego przyspieszenia w codziennej pracy, ponieważ na przykład obciążenie będzie ograniczone przez przepustowość sieci.
Wolny dysk twardy może spowolnić niektóre operacje, ale sam w sobie nie może spowolnić programu.
RAM
Mimo że pamięć RAM jest teraz nieprzyzwoicie tania, wiele stacji roboczych nadal pracuje z ilością pamięci zainstalowanej podczas zakupu. Tu czają się pierwsze problemy. Już przy założeniu, że trojka potrzebuje średnio około 500 MB pamięci, można założyć, że całkowita ilość pamięci RAM w 1 GB nie wystarczy do pracy z programem.
Zredukowaliśmy pamięć systemową do 1 GB i uruchomiliśmy dwie bazy informacyjne.
Na pierwszy rzut oka wszystko nie jest takie złe, program uspokoił apetyty i całkowicie zmieścił się w dostępnej pamięci, ale nie zapominajmy, że potrzeba danych operacyjnych nie uległa zmianie, więc gdzie oni poszli? Rozładowywany na dysk, pamięć podręczną, wymianę itd., Istotą tej operacji jest to, że dane, które nie są w danej chwili potrzebne, są przesyłane z szybkiej pamięci RAM, co nie jest wystarczające, na wolny dysk.
Do czego to doprowadzi? Zobaczmy, w jaki sposób zasoby systemowe są wykorzystywane w ciężkich operacjach, na przykład uruchomimy ponownie transpozycję grupową w dwóch bazach danych. Po pierwsze w systemie z 2 GB pamięci RAM:
Jak widać, system aktywnie korzysta z sieci, do gromadzenia danych, a procesor do ich przetwarzania, aktywność dysku jest nieznaczna, rośnie sporadycznie podczas przetwarzania, ale nie jest czynnikiem odstraszającym.
Teraz zmniejsz pamięć do 1 GB:
Sytuacja zmienia się radykalnie, główne obciążenie jest teraz na dysku twardym, procesor i sieć są bezczynne, czekając, aż system odczyta niezbędne dane z dysku do pamięci i wyśle tam niepotrzebne dane.
Co więcej, nawet subiektywna praca z dwoma otwartymi bazami danych w systemie z 1 GB pamięci okazała się wyjątkowo niewygodna, podręczniki i czasopisma zostały otwarte ze znacznym opóźnieniem i aktywnym dostępem do dysku. Na przykład otwarcie magazynu Sprzedaż towarów i usług trwała około 20 sekund i towarzyszyła temu cały czas duża aktywność dysku (zaznaczona na czerwono).
Aby obiektywnie ocenić wpływ pamięci RAM na wydajność konfiguracji opartych na zarządzanej aplikacji, przeprowadziliśmy trzy pomiary: prędkość pobierania pierwszej bazy, prędkość pobierania drugiej bazy oraz odtwarzanie grupy w jednej z baz. Obie bazy są całkowicie identyczne i utworzone przez skopiowanie zoptymalizowanej bazy. Wynik jest wyrażony w jednostkach względnych.
Wynik mówi sam za siebie, jeśli czas ładowania wzrośnie o około jedną trzecią, co wciąż jest dość tolerowane, to czas wykonywania operacji w bazie danych rośnie trzykrotnie, nie ma powodu mówić o jakiejkolwiek wygodnej pracy w takich warunkach. Nawiasem mówiąc, dzieje się tak w przypadku zakupu dysku SSD, który może poprawić sytuację, ale jest dużo łatwiej (i taniej) poradzić sobie z przyczyną, a nie z konsekwencjami, i po prostu kupić odpowiednią ilość pamięci RAM.
Brak pamięci RAM jest głównym powodem, dla którego praca z nowymi konfiguracjami 1C jest niewygodna. Minimalna odpowiednia konfiguracja powinna być rozważona z 2 GB pamięci na pokładzie. Jednocześnie należy pamiętać, że w naszym przypadku stworzono warunki „szklarniowe”: czysty system, działał tylko 1C i menedżer zadań. W rzeczywistości przeglądarka, pakiet biurowy, program antywirusowy itp. Itp. Są zwykle otwarte na komputerze roboczym, więc z potrzeby 500 MB dla jednej bazy plus pewnego marginesu, tak aby podczas ciężkich operacji nie napotkał na brak pamięci i gwałtowny spadek wydajności.
Procesor
Bez przesady centralny procesor można nazwać sercem komputera, ponieważ to on ostatecznie przetwarza wszystkie obliczenia. Aby ocenić jego rolę, przeprowadziliśmy kolejny zestaw testów, taki sam jak w przypadku pamięci RAM, zmniejszając liczbę rdzeni dostępnych dla maszyny wirtualnej z dwóch do jednego, a test przeprowadzono dwukrotnie z pamięcią 1 GB i 2 GB.
Wynik okazał się dość interesujący i nieoczekiwany, bardziej wydajny procesor dość skutecznie przejął obciążenie w obliczu braku zasobów, nie dając żadnych wymiernych korzyści przez resztę czasu. 1C Enterprise (w trybie plików) trudno nazwać aplikacją, która aktywnie korzysta z zasobów procesora, raczej mało wymagająca. W trudnych warunkach procesor jest obciążony nie tyle przez obliczanie danych samej aplikacji, co raczej przez obsługę narzutu: dodatkowe operacje wejścia-wyjścia itp.
Wnioski
Więc dlaczego hamuje 1C? Pierwszy to brak pamięci RAM, w tym przypadku główny ciężar spada na dysk twardy i procesor. A jeśli nie świecą z wydajnością, jak to zwykle ma miejsce w konfiguracjach biurowych, to mamy sytuację opisaną na początku artykułu - „dwa” działały dobrze, a „trzy” bezwstydnie zwalniają.
Wydajność sieci powinna być na drugim miejscu, wolny kanał 100 Mbit / s może stać się prawdziwym wąskim gardłem, ale jednocześnie tryb cienkiego klienta jest w stanie utrzymać dość komfortowy poziom pracy nawet na wolnych kanałach.
Następnie należy zwrócić uwagę na dysk, kupienie dysku SSD raczej nie będzie dobrą inwestycją, ale zastąpienie dysku nowszym nie będzie zbyteczne. Różnicę między generacjami dysków twardych można oszacować na podstawie następującego materiału: Przegląd dwóch niedrogich dysków serii Western Digital Blue 500 GB i 1 TB .
Wreszcie procesor. Szybszy model z pewnością nie będzie zbędny, ale nie ma większego sensu zwiększanie jego wydajności, chyba że ten komputer jest używany do ciężkich operacji: przetwarzanie grupowe, ciężkie raporty, zamknięcie miesiąca itp.
Mamy nadzieję, że ten materiał pomoże Ci szybko zrozumieć pytanie „dlaczego hamuje 1C” i rozwiązać go najbardziej efektywnie i bez dodatkowych kosztów.
Sprawdź?Co się stanie, gdy uruchomisz bazę plików 1C w sieci?
Więc dlaczego hamuje 1C?
Być może za mało podsystemu dysku serwera wydajności?
Czy potrzebujesz SSD na serwerze?
Do czego to doprowadzi?