DZWON

Są tacy, którzy czytają tę wiadomość przed wami.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać The Bell
Bez spamu

Projekt serwera na potrzeby „1C: Enterprise 8” dla średnich i dużych firm

Materiał przeznaczony jest dla specjalistów technicznych, którzy projektują rozwiązania serwerowe na potrzeby 1C: Enterprise 8 z obciążeniem 25-250 użytkowników i więcej. Rozważane są kwestie oceny wymaganej wydajności przez komponenty serwera, biorąc pod uwagę przypadki ekstremalnego obciążenia, wpływ wirtualizacji. Kwestie budowy infrastruktury korporacyjnej odpornej na awarie dla dużych przedsiębiorstw zostaną omówione w następnym artykule.

Oszacowanie wymaganej wydajności sprzętu.

Do doboru sprzętu wymagana jest przynajmniej wstępna ocena zapotrzebowania na zasoby procesora, pamięci RAM, podsystemu dyskowego i interfejsów sieciowych.
Można to rozważyć na dwa sposoby:
a) Eksperymentalny, który pozwala uzyskać obiektywne dane dotyczące obciążenia obecnego sprzętu i zidentyfikować wąskie gardła;
b) Obliczony, który pozwala dokonać oszacowania na podstawie uśrednionych danych empirycznych.
Najbardziej efektywne jest połączenie obu metodologii.

  1. Monitorowanie obciążenia, ocena wyników, znajdowanie wąskich gardeł i tworzenie wymagań

Dlaczego ważne jest przeprowadzenie analizy obciążenia, gdy masz działający system?
Tutaj najlepiej byłoby porównać z medycyną. Kiedy pacjent przychodzi do lekarza, najpierw przeprowadza się badanie, przepisuje się badania, a następnie ocenia cały zestaw dostępnych informacji i przepisuje leczenie. Przy projektowaniu serwera sytuacja wygląda dokładnie tak samo.
Podejmując wysiłki zmierzające do zmierzenia parametrów obciążenia i analizy wyników, w nagrodę otrzymamy najlepszą zgodność projektowanego serwera z naszymi zadaniami. Efektem końcowym będą - znaczne oszczędności, zarówno w kosztach początkowych, jak i eksploatacyjnych w przyszłości.

Ocenimy wydajność serwera pod kątem głównych podsystemów: procesorów centralnych, pamięci RAM, podsystemu dyskowego I / O oraz interfejsów sieciowych. W środowisku Windows dostępne jest standardowe narzędzie do obliczeniowej oceny obciążenia Windows Performance Monitor (perfmon). Inne systemy mają podobne narzędzia oceny.
Ogólnie rzecz biorąc, obciążenie każdego podsystemu w dużym stopniu zależy od aplikacji i typów danych, z którymi pracują. Dla bloku aplikacji związanych z 1C najbardziej krytyczne są procesor, pamięć RAM, a dla serwera SQL podsystem dyskowy. W przypadku wdrażania na wielu serwerach interfejs sieciowy jest również krytyczny. Będziemy pracować tylko z tymi parametrami, które są dla nas ważne z punktu widzenia zastosowanego problemu.
Dane do analizy należy zbierać co najmniej jeden dzień wcześniej w typowy dzień roboczy. Najlepiej zebrać dane w trzy typowe dni robocze. Aby znaleźć wąskie gardła, zaleca się pobieranie danych z dnia największego obciążenia.
Wszystko opisane poniżej przyda się zarówno na etapie przygotowań do projektowania nowego serwera (do postawienia dostawcy zadania), jak i później podczas pracy, do obiektywnej oceny zmian parametrów sprzętu i ewentualnego dalszego „strojenia” kompleksu sprzętowo-programowego w ramach „1C: Enterprise 8” ogólnie.

PROCESOR. Najbardziej interesuje nas jeden parametr - „ Procesor:% czasu procesora» (« Procesor:% czasu procesora ”). Microsoft mówi, co następuje na temat tego parametru: „Ten licznik śledzi czas, jaki procesor poświęca na wykonywanie wątku podczas pracy. Stały wskaźnik wykorzystania procesora między 80% a 90% może wskazywać na aktualizację procesora lub wielokrotne dodawanie procesora. Zatem jeśli obciążenie procesora jest średnio na poziomie 70-80%, jest to optymalny stosunek efektywności wykorzystania zasobów procesora do marginesu wydajności w okresach szczytowych. Mniej - system jest niedociążony. Ponad 80% jest zagrożonych, 90% - system jest przeciążony, musisz albo rozłożyć obciążenie na inne hosty, albo przenieść się na nowy, bardziej produktywny serwer.

Analiza procesora . W przypadku nowoczesnych procesorów warto w pierwszej kolejności dowiedzieć się, ile rdzeni potrzebujesz. Sam system Windows dość wydajnie rozkłada obciążenie między rdzeniami i z wyjątkiem rzadkich przypadków, gdy istnieje wyraźne powiązanie z rdzeniami na poziomie oprogramowania, wszystkie rdzenie procesorów będą ładowane mniej więcej równomiernie. Ogólnie rzecz biorąc, jeśli masz parametr "% Zużycie procesora„Jest w przedziale 50-70% - wszystko w porządku, jest rezerwa. Jeśli jest mniej niż 50%, oznacza to, że Twój system ma już nadmierną liczbę rdzeni, można zmniejszyć ich liczbę lub załadować serwer innymi zadaniami. Średnie obciążenie 80% lub więcej - Twój system potrzebuje więcej rdzeni.

Baran . Warto tutaj śledzić dwa parametry:
« Pamięć: dostępne MB» (« Pamięć: dostępne MB ”). W normalnym systemie operacyjnym ten licznik musi wynosić co najmniej 10% pamięci fizycznej zainstalowanej na serwerze. Jeśli ilość dostępnej pamięci jest zbyt mała, system będzie zmuszony do użycia pliku stronicowania dla aktywnych procesów. W efekcie zauważalne są opóźnienia aż do efektu „zamrożenia” systemu.
« Pamięć:% Zobowiązany Bajty W Posługiwać się», « Pamięć:% wykorzystania przydzielonej pamięci ”. Wysoka wartość tego licznika wskazuje, że system ma duże obciążenie pamięci RAM. Jest wysoce pożądane, aby ten parametr był poniżej 90%, ponieważ przy 95% jest szansa na błąd OutOfMemory.

Analiza pamięci RAM . Kluczowym parametrem jest dostępność dostępnej pamięci RAM na serwerze, co pozwala dość skutecznie monitorować powyższe liczniki.

Podsystem dyskowy. Bardzo często pytania dotyczące wydajności „1C: Enterprise 8” są związane z niewystarczającą wydajnością podsystemu dyskowego. I to tutaj mamy dość duże możliwości optymalizacji sprzętu do zadania. Dlatego największą uwagę zwrócimy na analizę liczników podsystemu dyskowego.

  1. « % Wolna przestrzeń„Procent wolnego miejsca na dysku logicznym. Jeśli mniej niż 15% pojemności dysku jest wolne, jest uważane za przeciążone, a jego dalsza analiza najprawdopodobniej nie będzie do końca poprawna - duży wpływ na to będzie miała fragmentacja danych na dysku. Zalecana ilość wolnego miejsca na dysku serwera to co najmniej 20%, więcej w przypadku SSD jest pożądane.
  2. « Śr. Dysk sec / Transfer„To średni czas dostępu do dysku. Licznik pokazuje średni czas w milisekundach wymagany do wymiany danych na jednym dysku. W przypadku słabo obciążonych systemów (na przykład magazyny plików, magazyny maszyn wirtualnych) zaleca się utrzymanie wartości w granicach 25–30 ms. Dla mocno obciążonych serwerów (SQL) - nie zaleca się przekraczania 10 ms. Duże wartości licznika wskazują na przeciążenie podsystemu dyskowego. Jest to integralny wskaźnik, który wymaga bardziej szczegółowej analizy. Jakie operacje, czyta lub zapisuje iw jakiej proporcji, są wskazywane przez liczniki Śr. Dysk sec / Read (średni czas odczytu dysku w sekundach) i Śr. Dysk sec / Write (średni czas dostępu do dysku na zapis).
    Wskaźnik całkowania Śr. Dysk sec / Transfer w RAID5 / RAID6 ze znaczną przewagą operacji odczytu może mieścić się w normalnym zakresie, a operacje zapisu będą wykonywane ze znacznymi opóźnieniami.
    3. Śr. Długość kolejki dyskowej (średnia długość kolejki dyskowej) w rzeczywistości jest integralnym wskaźnikiem i składa się z Śr. Długość kolejki odczytu dysku(średnia długość kolejki odczytu dysku) i Śr. Długość kolejki zapisu na dysku (średnia długość kolejki zapisu na dysku). Informuje, ile średnio operacji we / wy oczekuje na udostępnienie dysku twardego. Nie jest to mierzalny wskaźnik, ale wyliczany zgodnie z prawem Little'a z teorii kolejek jako N \u003d A * Sr, gdzie N to liczba oczekujących żądań w systemie, A to szybkość żądań, Sr to czas odpowiedzi. W przypadku normalnie funkcjonującego podsystemu dysków ta liczba nie powinna przekraczać liczby dysków w grupie RAID o więcej niż 1. W aplikacjach klasy SQL Server pożądane jest utrzymywanie jej średniej poniżej 0,2.
    4. Bieżąca długość kolejki dyskowej (bieżąca długość kolejki dyskowej) pokazuje liczbę oczekujących i oczekujących żądań dla wybranego dysku. Jest to wartość bieżąca, migawka, a nie średnia z przedziału czasu. Czas opóźnienia przetwarzania żądań wysyłanych do podsystemu dyskowego jest proporcjonalny do długości kolejki. Dla wygodnej pracy w stanie ustalonym liczba oczekujących żądań nie powinna przekraczać liczby dysków fizycznych w macierzy więcej niż 1,5-2 razy (zakładamy, że w macierzy kilku dysków każdy dysk może jednocześnie wybrać jedno żądanie z kolejki).
    5. Transfer dysków / sek (dostęp do dysku / s) - liczba indywidualnych żądań we / wy dysku zrealizowanych w ciągu jednej sekundy. Pokazuje rzeczywiste potrzeby aplikacji w zakresie losowego odczytu i zapisu w podsystemie dyskowym. Jako wskaźnik, który podsumowuje kilka indywidualnych liczników, pozwala szybko ocenić ogólną sytuację.
    6. Odczyty dysku / sek - liczba odczytów na sekundę, czyli częstotliwość operacji odczytu z dysku. Najważniejszy parametr dla aplikacji klasy SQL Server, który określa rzeczywistą wydajność podsystemu dyskowego.
    W normalnym trybie stabilnym szybkość dostępu nie powinna przekraczać fizycznych możliwości dysków - ich indywidualnych limitów pomnożonych przez liczbę dysków w macierzy.

100-120 IOPS na dysk SATA lub NL SAS;

200-240 IOPS na dysk SAS 15000 rpm;

65 000 IOPS na dysk SSD klasy Intel SSD s3500 (SATA);

7. Zapisów na dysku / sek - liczba dostępów do zapisu na sekundę, czyli częstotliwość wykonywania zapisów na dysku. Niezwykle ważny parametr dla aplikacji klasy SQL Server. Podczas pracy w trybie normalnym szybkość dostępu nie powinna przekraczać limitów dysków fizycznych pomnożonych przez liczbę w macierzy z uwzględnieniem kary za zapis dla wybranego typu RAID.

80-100 IOPS na dysk SATA lub NL SAS;

180-220 IOPS na dysk SAS;

2 , 20 GHz

DDR4
1600/1866/2133

3 , 50 GHz

DDR4 1600/1866/2133/2400

Tabela 1 - Parametry pracy z pamięcią RAM

Baran ... Na wydajność całego serwera będzie miał wpływ rodzaj zainstalowanej pamięci. Na przykład LR DIMM, ze względu na swoją architekturę, zawsze będzie miał większe opóźnienie niż konwencjonalna pamięć DDR4 RDIMM. Zwłaszcza w przypadku stosunkowo krótkich zapytań typowych dla SQL podczas pracy z 1C. Biorąc pod uwagę większe opóźnienia i znacznie wyższą cenę, sensowne jest instalowanie LR DIMM tylko wtedy, gdy nie jest możliwe uzyskanie wymaganej ilości pamięci RAM ze względu na RDIMM.
Podobnie DDR4 2400 będzie działał nieco szybciej niż DDR4 2133 - jeśli procesor obsługuje wysokie częstotliwości.

Interfejs sieciowy. W tym przypadku wskazane jest przestrzeganie prostych zasad:
a) Serwer musi mieć co najmniej trzy interfejsy sieciowe 1 Gb Ethernet lub szybsze (10 Gb, 40 Gb) i co najmniej dwa z nich w układach sieciowych serwera. Oczywiście, przy zachowaniu wszystkich pozostałych parametrów, należy preferować infrastrukturę Ethernet 10Gb, zwłaszcza biorąc pod uwagę zanikającą niewielką różnicę w cenie sprzętu (karty sieciowe 10Gb i porty 10Gb na przełącznikach 1GB / 10Gb).
b) Serwer musi obsługiwać jedną lub inną technologię KVM-over-IP do zdalnego sterowania.
Spośród subtelności można wyróżnić bardzo dobrą obsługę wszystkich chipów sieciowych serwerów Intel dla narzędzi wirtualizacyjnych oraz możliwość efektywnego rozłożenia obciążenia między rdzeniami procesora dla 10 Gb +.

Podsystem dyskowy :

Podsystem dyskowy składa się z dwóch komponentów:
- podsystem I / O w postaci kontrolerów SAS HBA i kontrolerów RAID;
- nośniki danych, czyli w naszym przypadku dyski SSD i HDD.

NALOT.
W przypadku zadań przechowywania systemu operacyjnego i bazy danych z reguły używany jest RAID 1 lub RAID 10, a także ich różne odpowiedniki programowe.

1. W pełni programowy RAID (Soft RAID) wykorzystujący system Windows Server nie może być używany jako dysk startowy, ale jest całkiem odpowiedni do przechowywania dzienników DB, tempDB i SQL. Technologia Windows Storage Spaces zapewnia dość wysoką wydajność pod względem niezawodności i wydajności pamięci masowej, a także oferuje szereg dodatkowych funkcji, z których najciekawszą, koncyliacyjną w stosunku do zadań 1C, jest „warstwowa pamięć masowa”. Zaletą tej technologii jest to, że część najczęściej żądanych danych jest automatycznie umieszczana na dysku SSD przez system.
W przypadku zadań 1C zwykle używają macierzy All-Flash z dysku SSD lub w przypadku bardzo dużych (1 TB i więcej) i wieloletnich baz danych - warstwowej pamięci masowej.
Jedną z zalet technologii Windows Storage Spaces jest możliwość tworzenia macierzy RAID na dyskach NVMe.

2. Sprzętowa i programowa macierz RAID1 oparta na chipsecie Intel i technologii Intel® Rapid Storage ( Intel RST).
W nim operacje we / wy na poziomie sprzętowym są wykonywane przez chipset płyty głównej, prawie bez użycia zasobów procesora. A macierzą steruje się na poziomie oprogramowania za pomocą sterowników Windows.
Jak każde rozwiązanie kompromisowe, Intel RST ma pewne wady.
a) Intel RST zależy od sterowników załadowanych do systemu operacyjnego. A to niesie ze sobą potencjalne ryzyko, że po zaktualizowaniu sterowników lub systemu operacyjnego może wystąpić sytuacja, w której dysk RAID będzie niedostępny. Jest to niezwykle mało prawdopodobne, ponieważ Intel i Microsoft są bardzo przyjaźni i bardzo dobrze testują swoje oprogramowanie, ale jest to możliwe.
b) Na podstawie wyników eksperymentalnych, na podstawie pośrednich wskazań, można założyć, że model sterownika Intel RST wykorzystuje zasoby pamięci RAM do buforowania zapisu. Zapewnia to wzrost wydajności, ale wiąże się również z pewnym ryzykiem utraty danych z powodu nieplanowanej przerwy w zasilaniu serwera.
To rozwiązanie ma również zalety.
Jednym z nich jest zawsze bardzo wysoka wydajność, na poziomie, a czasem nawet wyższym niż w pełni sprzętowych kontrolerów RAID.
Drugi to sprzętowa obsługa macierzy RAID1 dla dysków NVMe (w chwili pisania tego tekstu nie dotyczy dysków rozruchowych). I tu jest interesująca funkcja dla tych, którzy używają mocno obciążonych podsystemów dyskowych. W przeciwieństwie do Windows Storage Spaces, które „przeciążają” jądro zajmowane przez I / O do prawie 100%, Intel RST, gdy osiągnie około 70% obciążenia jądra, podłącza następne jądro do procesu I / O. Rezultatem jest bardziej równomierne obciążenie rdzeni procesora i nieco wyższa wydajność przy dużych obciążeniach.

Rysunek 4 - Wykorzystanie procesora przestrzeni dyskowej systemu Windows vs. Intel RST

3. W pełni sprzętowa macierz RAID w serwerze z 2-6 dyskami SSD w RAID 1 jest całkiem możliwa dzięki SAS HBA w chipsecie LSI SAS 3008, na przykład w kontrolerze Intel® RAID RS3WC080. W tym celu na karcie HBA SAS jest instalowane specjalne oprogramowanie „IR”. Co więcej, ten SAS HBA obsługuje standard SAS 3.0 (12 Gb / s) w cenie około 300 USD. Doskonałym wyborem byłby tutaj kontroler Intel® RAID RS3WC080, który jest od razu dostarczany z wymaganym oprogramowaniem układowym.
Istotą tego rozwiązania jest to, że serwerowe dyski SSD nie potrzebują pamięci podręcznej zapisu. Co więcej, bardziej zaawansowane kontrolery RAID wyłączają również wbudowaną pamięć podręczną zapisu podczas korzystania z dysków SSD. Tym samym HBA, który nie ma pamięci podręcznej SAS w trybie kontrolera RAID, całkiem dobrze radzi sobie z zadaniami szybkiego zapisu i odczytu bezpośrednio z dysku SSD, zapewniając całkiem przyzwoitą wydajność.

4. W przypadku mocno obciążonych serwerów z dużą liczbą dysków SSD SAS lub SATA pożądane jest zainstalowanie pełnoprawnego kontrolera RAID klasy Intel® RAID Controller RS3MC044 lub Adaptec RAID 8805. Posiadają wydajniejsze procesory I / O oraz zaawansowane algorytmy do pracy z dyskami HDD i SSD, w tym umożliwiające szybszy montaż macierzy po wymianie uszkodzonego dysku.

Urządzenia pamięci masowej (SSD i HDD).
i) Niezawodność SSD i HDD .
Zazwyczaj teoretyczna niezawodność dysków jest oceniana za pomocą parametru „nieodwracalne błędy odczytu na odczytane bity”, który można przetłumaczyć jako „prawdopodobieństwo nieodwracalnego błędu odczytu na liczbę odczytanych bitów”. Pokazuje, po odczytaniu, ile danych z dysku, według statystyk, należy spodziewać się nieodwracalnego błędu.
Inny ważny parametr pokazuje prawdopodobieństwo awarii dysku - AFR (roczny wskaźnik awaryjności) lub „Roczny wskaźnik awaryjności”.
Poniższa tabela przedstawia dane dla typowych dysków twardych SATA Enterprise HDD 7200 prm (SATA Raid Edition), SAS HDD Enterprise 15 000 prm, SATA SSD Enterprise.

Parametr

Typ płyty

Enterprise SATA \\ SAS NL 7200 prm

Enterprise SAS 15 000 prm
(10 000 sztuk)

Dysk SSD Enterprise SATA

Nieodwracalne błędy odczytu na odczytane bity

Objętość, przy której statystycznie oczekuje się odczytu nieodwracalnego błędu

Patka. 2 - teoretyczna niezawodność HDD i SSD

Prawdopodobieństwo nieodwracalnych błędów w dysku Enterprise SATA SSD klasy Intel® SSD DC S3510 Series jest 10 razy niższe niż w przypadku dysku Enterprise SAS HDD 15 000 obr / min i 100 razy niższe niż w przypadku dysku SATA Enterprise HDD 7200 prm. Dlatego dyski SSD klasy korporacyjnej są teoretycznie i bardziej niezawodne niż jakikolwiek dysk twardy.

b) Następnie szacujemy występ SSD i HDD .
Z punktu widzenia bazy danych, która w rzeczywistości jest 1C, najważniejsze są tylko trzy parametry dysku:
- Opóźnienie, czyli czas odpowiedzi dysku, jest mierzone w mikrosekundach (mniej znaczy lepiej);
- liczba operacji odczytu na sekundę (Odczyty dysku / s), mierzona we IOPS (im więcej, tym lepiej);
- liczba operacji zapisu na sekundę (zapisy na dysku / s), mierzona we IOPS.
Podsumujmy te trzy parametry w jednej tabeli:

Parametr

Typ płyty

Enterprise SATA / SAS NL 7200 prm

Enterprise SAS 15 000 prm
(10 000 sztuk)

Dysk SSD Enterprise SATA

Dysk SSD Enterprise NVMe

Opóźnienie (czas odpowiedzi odczytu / zapisu dysku), mikrosekundy

Odczyty dysku / s (liczba operacji odczytu na sekundę), IOPS

Zapisy na dysku / s (liczba zapisów na sekundę), IOPS

Patka. 3 - Wydajność HDD i SSD.

Jak widać wyraźnie z tabeli, NVMe SSD (na przykład Intel® SSD DC z serii P3600) opóźnienia przewyższa Enterprise SAS HDD 100 razyi przez liczba operacji we / wy na sekundę - w 200 razy do nagrywania i in 1500 razy do czytania.
Czy rozsądne jest używanie technologii HDD do hostowania baz danych?

w) Przepisz ilość dziennie dla serwerowni SSD .
Oprócz wszystkich „bułeczek” w formie superkondensator W przypadku zaniku zasilania i sprzętowego szyfrowania modułów, serwerowe dyski SSD mają najważniejszy parametr - szacunkową ilość przepisywania dziennie z całkowitej pojemności dysku SSD. Jeśli mówimy o serwerowych dyskach SSD firmy Intel, mamy na myśli codzienne przepisywanie tego wolumenu na 5 lat, co jest objęte gwarancją. Ta opcja umożliwia sortowanie dysków SSD na obciążenia „głównie do odczytu”, „zorientowane na zapis / odczyt” i „duże obciążenia związane z przepisywaniem”. W formie tabelarycznej wygląda to tak:

Dysk Intel SSD

Nadpisuj dziennie (od pojemności)

Tabela 4. - Ilość przepisywania SSD dziennie.

W związku z tym na serwerze można wybrać odpowiednie dyski do zadania.
Na przykład dysk Intel SSD s3510 wystarczy do przechowywania dziennika systemu operacyjnego i SQL.
W przypadku pamięci masowej DB i tempDB bardziej odpowiednie są Intel SSD s3610 lub Intel SSD s3710.

Przykłady projektowania podsystemów dyskowych.
Uzbrojeni w powyższe, zbierzmy kilka podsystemów dyskowych dla różnych wymagań.
a) Serwer dla 45 użytkowników, DB - 15 GB, roczny przyrost - 4 GB, tempDB - 0,5 GB, log SQL - 2 GB.
Opłacalne jest zainstalowanie RAID1 z dwóch dysków Intel SSD s3510 240 GB na potrzeby systemu operacyjnego i dziennika SQL oraz RAID1 z dwóch dysków Intel SSD s3510 120 GB na potrzeby DB i tempDB. Wbudowany Intel® RAPID nadaje się jako kontroler RAID.
b) Serwer dla 100 użytkowników, DB - 55 GB, przyrost rocznie - 15 GB, tempDB - 4 GB, Log SQL - 8 GB.
Dla takiego serwera możesz zaoferować RAID1 dwóch dysków Intel SSD s3510 240 GB na potrzeby systemu operacyjnego i dziennika SQL oraz RAID1 dwóch dysków Intel SSD s3610 200 GB na potrzeby DB i tempDB. Kontroler Intel® RAID RS3WC080 (prosty sprzęt, bez pamięci podręcznej) jest optymalny jako kontroler RAID.
c) Serwer dla 200 użytkowników, DB - 360 GB, przyrost rocznie - 70 GB, tempDB - 24 GB, log SQL - 17 GB.
Ten serwer jest już całkiem załadowany. W przypadku systemu operacyjnego nadal bierzemy RAID1 z dwóch dysków Intel SSD s3510 240 GB. SQL Log i tempDB można umieścić w dedykowanej macierzy RAID1 dwóch dysków Intel SSD s3510 120 GB. W przypadku tabel DB zbierz RAID10 z czterech dysków Intel SSD s3610 o pojemności 400 GB. Jako kontroler RAID należy używać „zaawansowanego” kontrolera Intel® RAID RS3MC044.

Wirtualizacja
Wydajność nowoczesnych serwerów często pozwala na umieszczenie ich na jednym fizycznym - kilku wirtualnych. Aby uzyskać optymalne rozmieszczenie, warto pamiętać, jak wirtualizacja wpływa na każdy z komponentów serwera.
Procesor i pamięć RAM to obszary, które mają najmniejszy spadek wydajności w środowisku wirtualnym. W związku z tym te składniki oprogramowania, które głównie z nich korzystają, można bezboleśnie umieścić na maszynie wirtualnej (VM). Należą do nich 1C: Enterprise 8. Serwer aplikacji x64, usługa pulpitu zdalnego i IIS.
Podsystemy I / O ponoszą zauważalnie większe straty podczas wirtualizacji: 5-15% - interfejs sieciowy i do 25% - podsystem dyskowy. Mamy komponent programu SQL Serve, który jest wrażliwy na wydajność podsystemu dyskowego - logiczne jest umieszczenie go nie w „VM”, ale w fizycznym „sprzęcie”.
Odbywa się to zwykle w przypadku serwerów samodzielnych lub grupy serwerów poniżej 1C:
- na sprzęcie zainstalowany jest system operacyjny Windows i MS SQL Server;
- „1C: Enterprise 8. Application Server x64” jest uruchamiany na maszynie wirtualnej i „Licensing Server” na tej samej maszynie wirtualnej;
- na oddzielnej maszynie wirtualnej, usłudze pulpitu zdalnego lub usług IIS.
W przypadku korzystania z kilku komponentów oprogramowania na jednym serwerze, m.in. na różnych maszynach wirtualnych konieczne jest zapewnienie dodatkowej przestrzeni na poziomie podsystemu dysku do ich umieszczenia. Z reguły są to dyski systemowe z systemem operacyjnym - są zwiększone do 480 GB lub więcej.

Utworzyć kopię zapasową
Dość powszechną praktyką jest instalowanie dwóch dysków twardych o dużej pojemności (4-8 TB) na serwerze RAID1 na serwerze w celu przechowywania lokalnych kopii baz danych, a także w roli magazynu plików. Taka pamięć nie ma wysokich wymagań dotyczących szybkości dostępu swobodnego. A liniowa prędkość odczytu i zapisu jest wystarczająca do przechowywania codziennych kopii zapasowych i plików użytkownika. Taki wolumin można zmontować na dowolnym dostępnym kontrolerze RAID i nadal będzie działał dość szybko na Intel® RAPID.

I proszę nie zapominać, że musi mieć oddzielny serwer do odpowiedzialnych zadań nadmierne odżywianie .

Od wielu lat na forach toczą się debaty o tym, co może przyspieszyć pracę pliku 1C.

Oczywiście jest wiele przepisów, w tym kilka, które dzielę się na kursie.

Ale ktokolwiek mówi co, dla pliku 1C wąskim gardłem numer 1 jest oczywiście podsystem dyskowy!

Właściwie „Plik”.

Wielokrotne wywołania dysku mogą naprawdę spowolnić całą pracę w 1C Enterprise.

A jeśli mówimy o dostępie dla wielu użytkowników, jest to tutaj oczywiste.

Jak można rozwiązać ten problem?

Oczywiście przechodząc na szybsze dyski HDD, dyski SAS, RAID, dyski SSD, a nawet sposób na ekstremalne osoby na umieszczenie bazy danych na dysku RAM, czyli w pamięci RAM komputera PC lub serwera.

Właściwie w tym artykule zajmiemy się wszystkimi metodami, ale zwrócimy oczywiście szczególną uwagę na tę drugą.

Ponieważ w sieci nie ma odpowiednich artykułów, które mogłyby ujawnić wiele niuansów zarówno wykorzystania dysku 1C i RAM, jak i sensownych testów na wszystkich innych podsystemach dyskowych, biorąc pod uwagę codzienną pracę w 1C-ke.

Ale jest tu wiele pytań:

Kto może z niego korzystać i kiedy?

W jakich sytuacjach?

Niezawodność?

Obszar zastosowań?

Prawdziwe testy prędkości w różnych operacjach 1C?

Zacznijmy od zwykłych dysków twardych.

Oczywiście istota problemu tkwi w mechanice HDD, która nie zapewnia wymaganych prędkości do pracy na plikach w 1C (zwłaszcza w przypadku dostępu dla wielu użytkowników).

Wydajność dysku twardego można przyspieszyć jedynie poprzez zastąpienie dysku twardego 5400 obr / min 7200 obr / min.

Tak, prędkość obrotowa ma znaczenie, a 7200 obr / min to z pewnością więcej niż 5400.

Dzieje się tak, jeśli chcemy poczuć różnicę. (Ale warto zauważyć, że praktycznie wszystkie dzisiejsze dyski twarde działają z prędkością 7200.)

Tarcze pracujące przy 7200 obr / min pokazują w przybliżeniu ten sam wynik.

I czy to SATA 2 czy SATA 3.

SATA (Serial ATA) to interfejs szeregowy do wymiany danych z urządzeniami do przechowywania informacji.

Jeśli ścigasz interfejs SATA III (dla dysku twardego), nie będzie namacalnej prędkości, tylko bardzo mała liczba. (później przetestujemy prędkość dysku twardego tylko z obsługą SATA II i SATA III).

Przy okazji możesz dowiedzieć się, na którym interfejsie aktualnie pracuje Twój dysk (i który interfejs obsługuje) za pomocą programu „CrystalDiskInfo”.

SATA / 300 MB / s - SATA 2

SATA / 600 MB / s - SATA 3

- | SATA / 300 (patrz rysunek 1) - pierwszy to aktualny tryb pracy dysku, a drugi SATA / 300 to obsługiwany tryb pracy. (Czasami ten pierwszy nie wyświetla się na starszych dyskach).

Na drugim rysunku widzimy, że zarówno praca, jak i obsługa dysków twardych to SATA 3, czyli 600 MB / s. - przepustowość interfejsu.

(Wrócimy do kwestii interfejsów później).

Inna sprawa, jeśli zwykłe dyski twarde umieścimy w RAID - 0 (Stripe).

Z dwoma lub czterema dyskami RAID 0 zapewnia znaczną poprawę szybkości przesyłania danych, ale w ogóle nie zapewnia niezawodności. Do jego budowy nadaje się każdy tani, a nawet programowy kontroler RAID. Odpowiedni dla tych, którzy chcą wycisnąć maksymalną wydajność z systemu plików na konwencjonalnych dyskach twardych po najniższych kosztach.

Szybkość jest porównywalna nawet z niektórymi starymi dyskami SSD, ale niestety tutaj za szybkość płacimy niezawodnością. Jeśli przynajmniej jeden dysk ulegnie awarii, wszystkie informacje na obu dyskach zostaną utracone!

Dlatego wymagane są częste kopie zapasowe baz danych 1C z taką macierzą RAID.

Co decyduje o szybkości?

Dane w macierzy RAID - 0 są równomiernie rozmieszczone na dyskach tablicy, dyski są łączone w jeden, który można podzielić na kilka. Rozproszone operacje odczytu i zapisu mogą znacznie zwiększyć szybkość pracy, ponieważ kilka dysków jednocześnie odczytuje / zapisuje swoją porcję danych.

Innymi słowy, RAID 0 po prostu umiejętnie omija mechanikę dzięki tej szybkości.

To jest RAID - 10

Ale minimalna liczba dysków wymaganych do zorganizowania tego systemu to 4.

Oczywiście w tym artykule mówimy o prostym 1C opartym na plikach, więc analizujemy tylko rozwiązania budżetowe dla małych firm, w których podstawowe serwery nie są w ogóle dostępne.

Z tego samego powodu nie będziemy analizować szybszych i droższych dysków SAS, protokołów iSCSI.

Tylko dyski SSD są szybsze niż serwerowe SAS.

Jeszcze kilka lat temu nie radziłbym kupować „półprzewodnikowych” do pracy w 1C.

Ale moja opinia uległa zmianie w wyniku dzisiejszych niezawodnych i stosunkowo tanich dysków SSD.

Na przykład dzisiaj SAMSUNG udziela 10-letniej gwarancji na niektóre swoje dyski!

Intel, SanDisk, Corsair i inna 5-letnia gwarancja na dyski SSD!

Dyski SSD zaczęły działać znacznie bardziej niezawodnie, szybciej, a kontrolery stały się znacznie inteligentniejsze, stąd takie gwarancje.

O cenach

Oczywiście dyski SSD klasy korporacyjnej firmy INTEL będą nas kosztować ani grosza.

Ale są też dobre alternatywy budżetowe.

Na przykład „półprzewodnikowy” dysk X400 firmy SanDisk 256 GB będzie nas kosztować tylko 95 $!

Właściwie przetestujemy go również w 1C, już w kolejnej części artykułu.

Dysk SanDisk X400 jest dobry, niezawodny (5 lat gwarancji), szybki (odczyt / zapis do - 540/520 MB / s).

A skoro mowa o prędkościach, to tutaj powinniśmy wziąć pod uwagę taki moment jak SATA 3.

Interfejs SATA III (wersja 3.x), oficjalnie znany jako SATA 6 Gb / s, to trzecia generacja interfejsów SATA działająca z prędkością 6,0 Gb / s. Przepustowość obsługiwana przez interfejs wynosi 600 MB / s. Ten interfejs jest wstecznie kompatybilny z interfejsem SATA II -3 Gb / s.

Przepustowość SATA II wynosi tylko 300 MB / s, co jest wystarczające dla dysków twardych, ale absolutnie nie dla dzisiejszych dysków SSD.

Aby uwolnić potencjał dysku SSD, potrzebujesz interfejsu o przepustowości co najmniej 600 MB / s, czyli SATA III.

Ale nie martw się, jeśli kupiłeś komputer lub serwer po 2010 roku, najprawdopodobniej masz go w magazynie. (W przeciwnym razie musisz zmienić płytę główną).

Przy okazji chciałbym zwrócić uwagę na kontrolery SATA III różnych producentów (w jednej płycie głównej), na przykład Intel i Marvell, gdzie te pierwsze mogą znacznie zyskać na szybkości. (Właściwie to kiedyś sam byłem o tym przekonany. Intel był szybszy aż o 35%).

Oczywiście SATA III nie jest jedynym interfejsem do komunikacji z dyskiem SSD.

Twórcy "półprzewodnikowych" wpadli na przepustowość SATA III - 600 MB / s i wypuścili na rynek nowe urządzenia z interfejsami SATA Express, M.2, mSATA, PCI Express.

Istnieją już zupełnie inne prędkości:

PCI Express x2 2.0 8 Gb / s (800 MB / s)

SATA Express 10 Gb / s (1000 MB / s)

PCI Express x4 2.0 16 Gb / s (1600 MB / s)

PCI Express x4 3.0 32 Gb / s (3200 MB / s)

Niestety, te urządzenia kosztują teraz sporo pieniędzy i trudno nazwać takie budżetowe rozwiązanie.

Aby jeszcze bardziej przyspieszyć działanie dysku SSD, możesz utworzyć RAID 0 z dwóch dysków, co nawet podwoi prędkość dysku SSD.

Ale co może być szybsze niż dysk SSD?

Oczywiście pamięć RAM!

Prędkości tutaj nie są porównywalne z HDD, RAID czy SSD.

Istnieją sposoby (specjalne oprogramowanie), za pomocą których można wziąć część pamięci RAM i utworzyć z niej dysk.

Teraz „RAM” jest znacznie tańszy niż 5 lat temu, a wiele z nich ma na pokładzie 8-16 lub nawet więcej GB pamięci RAM.

Sztuczka polega na wybraniu wymaganego rozmiaru (dla podstawy 1C, tempa i jeśli pozwala na to rozmiar, to wepchnij całą platformę na ten dysk).

Powiedziałem już, że sposób "Skrajny" nietrudno zgadnąć, dlaczego.

Jeśli w systemie wystąpi nagła awaria, od razu stracisz bazę danych, a także wszystko, co będzie na tym dysku!

Oczywiście, aby naprawdę działać w 1C, który znajduje się na dysku RAM, potrzebujesz sprzętu serwerowego, pamięci RAM serwera, zasilaczy awaryjnych i niezawodnego sprzętu. (płyta główna, procesor i tak dalej).

+ częste kopie zapasowe.

Wtedy oczywiście możesz pracować w ten sposób w 1C.

A co jeśli takiego „sprzętu” nie ma, bo interesują nas budżetowe rozwiązania?

Po co więc rozmontowywać pracę 1C na dysku RAM?

Są przyjaciele! Oczywiście nie do ciągłej pracy użytkowników w 1C, ale raczej do wykonywania różnych rutynowych operacji.

Zamknięcie miesiąca, ponowne opublikowanie, usunięcie, „wycinanie bazy” (wszelkie inne podobne prace) związane z dużą liczbą dokumentów, podręczników i wszystkim innym.

Wiele z tych operacji może zająć kilka dni! Chociaż w pamięci RAM jest kilka godzin!

Jeśli na przykład Twoi użytkownicy pracują w 1C za pośrednictwem przeglądarki internetowej, to można go umieścić w całości w pamięci RAM, co znacznie przyspieszy pracę użytkownika w 1C przez Internet.

Innymi słowy, możesz tymczasowo użyć dysku RAM do wykonywania różnych ciężkich operacji w 1C, aby przyspieszyć proces, a następnie przywrócić bazę danych z powrotem na dysk SSD lub HDD.

To dobra sztuczka, której możesz użyć!

Aby rozpocząć prawdziwy testowanie pliku 1C na powyższych systemach dyskowych, prawie wszystko jest gotowe, z wyjątkiem dysku RAM.

Stwórzmy to!

Pomoże nam w tym darmowy program „Dataram RAMDisk”

Jego darmowa wersja wystarczy do stworzenia dysku o pojemności 4 GB. (Więcej - płatne ~ 21 USD).

Kwestia wydajności 1C w trybie plików jest dość dotkliwa, szczególnie dla małych firm, których nie stać na znaczne inwestycje w sprzęt. Niemniej jednak „apetyt” aplikacji od wydania do wydania tylko rośnie, a zadanie zwiększenia wydajności przy umiarkowanych kosztach budżetowych staje się coraz pilniejsze. W takim przypadku zakup i umieszczenie baz danych na dysku SSD byłoby dobrym rozwiązaniem.

Jeden z naszych klientów, mała firma księgowa, zaczęła narzekać na powolne działanie 1C: Enterprise. Właściwie niezbyt szybka praca aplikacji stała się kompletnie nudna po przejściu z Rachunkowości 2.0 na Rachunkowość 3.0.

Był prosty serwer terminali na Core i3 2120, 8 GB pamięci RAM, z macierzą dyskową RAID 1 złożoną z dwóch Western Digital RE4, która obsługiwała od trzech do sześciu użytkowników, z których każdy pracował z dwiema lub trzema bazami jednocześnie.

Analiza wydajności natychmiast ujawniła wąskie gardło - podsystem dyskowy (zrzut ekranu został wykonany po zainstalowaniu dysku SSD, dlatego dyski logiczne C: i E :) należą do macierzy RAID.

Proste obliczenia wykazały, że uruchomienie choćby jednej bazy infobase prawie całkowicie wykorzystuje wydajność macierzy, około 150 IOPS przy aktualnym współczynniku odczytu / zapisu - faktyczny limit dla lustra dwóch nie najszybszych dysków. Wskazuje na to pośrednio wielkość kolejki.

Jednoczesne uruchomienie kilku baz danych na początku dnia roboczego doprowadziło do znacznego spowolnienia działania serwera i zmniejszenia responsywności systemu. Dochodziło też do nieprzyjemnego zamyślenia podczas pracy z magazynami, generowania raportów itp.

Test wydajności macierzy również wykazał słaby wynik, bardziej odpowiedni według dzisiejszych standardów dla dysków przenośnych.

Stało się jasne, że podsystem dysku wymaga aktualizacji. Nawet według wstępnych szacunków stworzenie wydajnej macierzy opartej na masowych dyskach twardych było ograniczone zarówno przez dostępny budżet, jak i fizyczne możliwości sprzętu, który po prostu nie miał wymaganej liczby portów SATA i klatek dyskowych w obudowie. Dlatego zdecydowano się na zakup dysku SSD.

Ponieważ nie przewidziano dużych obciążeń dysków, wyboru dokonano przede wszystkim ze względu na cenę. Charakterystyka prędkości również zniknęła w tle, gdy interfejs SATA-II stał się wąskim gardłem. W rezultacie został nabyty 128 Gb Corsair Neutron LAMD, który po zainstalowaniu na serwerze wykazywał następującą charakterystykę prędkości:

Jak widać, oczekuje się, że operacje dostępu sekwencyjnego będą obciążać przepustowość interfejsu, ale w naszym przypadku ma to drugorzędne znaczenie. Główną uwagę należy zwrócić na operacje dostępu swobodnego, które są o rząd wielkości lepsze niż w przypadku tradycyjnych dysków twardych.

Następnym pytaniem do podjęcia decyzji jest, czy utworzyć „lustro” dysku SSD i poświęcić TRIM na rzecz odporności na awarie, czy też zachować pojedynczy dysk, wybierając prędkość zamiast odporności na awarie. Należy zaznaczyć, że nowoczesne dyski SSD, oprócz polecenia TRIM, wykorzystują własne technologie przeciwdziałające degradacji, takie jak np. Garbage collector, co pozwala im dość wydajnie pracować nawet na systemach bez TRIM. Zastosowany w tej serii dysków SSD kontroler LAMD (Link_A_Media Devices) wyróżnia się bardzo efektywnymi technologiami zbierania śmieci na poziomie dysków korporacyjnych, co generalnie nie jest zaskakujące, gdyż jego twórcy od dawna pracują w segmencie korporacyjnym.

Ponieważ ilość codziennie wprowadzanych dokumentów jest niewielka, ograniczyliśmy się do jednego dysku SSD z obowiązkowymi codziennymi kopiami zapasowymi. Pośrednio efekt zastosowania dysku SSD można oszacować na podstawie monitora wydajności:

Liczba operacji we / wy znacznie wzrosła, podobnie jak szybkość wymiany z dyskiem, a długość kolejki nie przekracza jednego. To bardzo dobre wskaźniki, pozostaje sprawdzić, jak bardzo nasze działania przyspieszyły pracę bezpośrednio z 1C: Enterprise.

W tym celu przeprowadziliśmy mały test ekspresowy, podczas którego mierzyliśmy czas wczytywania infobazy oraz czas grupowego ponownego wysłania zestawu dokumentów przez określony czas. Podczas testów użyto konfiguracji 1C: Rachunkowość 3.0.27.7 na platformie 8.3.3.721 .

Również podczas analizy wydajności zwróciliśmy uwagę na fakt, że w swojej pracy 1C: Enterprise aktywnie wykorzystuje foldery tymczasowe, które w naszym przypadku znajdowały się na dysku twardym. Dlatego, aby osiągnąć maksymalną wydajność, należy je również przenieść na dysk SSD, ale dla tych, którzy lubią oszczędzać zasób dysków półprzewodnikowych, w teście uwzględniliśmy obie opcje: gdy bazy danych znajdują się na dysku SSD i folder tymczasowy na dysku twardym oraz gdy dysk SSD jest w pełni wykorzystany przez aplikację.

Jak widać, przeniesienie baz danych na dysk SSD natychmiast skróciło ich czas ładowania o ponad połowę, a ponowne wykonanie przyspieszyło o około 30%. Jednocześnie całkowicie wyeliminuj problem związany ze spadkiem wydajności podczas wspólnej pracy.

Przeniesienie folderów tymczasowych na dysk SSD może skrócić czas ładowania ponad trzykrotnie i przyspieszyć przesyłanie dokumentów około dwukrotnie. Jest o czym pomyśleć nawet dla zagorzałych zwolenników oszczędzania zasobów dyskowych. Nasza opinia w tej sprawie jest następująca, jeśli kupiłeś dysk SSD, to powinieneś go wykorzystać w pełni.

Zróbmy małą dygresję. Dysk, którego używamy Neutron Corsair To ma zasób 2-3K cykli kasowania / zapisu... Proste obliczenia pokazują, że jeśli codziennie całkowicie nadpisujesz całą pojemność dysku, wyczerpanie zasobu zajmie 5-8 lat. Ponadto statystyki pokazują, że głównym powodem awarii dysku SSD w okresie gwarancyjnym nie jest wyczerpanie zasobów, ale wada produkcyjna lub błędy oprogramowania układowego.

Podsumowując, chciałbym powiedzieć, że korzystanie z dysków SSD jest dziś chyba jedynym skutecznym sposobem na znaczne zwiększenie wydajności 1C: Enterprise w trybie plików. A co najważniejsze, przystępne cenowo nawet dla małych firm.

W grupie LinkedIn „Storage Professionals” (przy okazji polecam zwrócić uwagę na istnienie grup dyskusyjnych na LinkedIn, może być ciekawie) od tygodnia dyskutuje się temat:
Wskaźniki awaryjności dysków SSD
Kilka cytatów stamtąd, które zacytuję bez tłumaczenia, bo wszystko jest jasne (każdy akapit jest cytatem-fragmentem z przesłania pojedynczej osoby w tym wątku).
Pracuję jako wykonawca w banku na środkowym zachodzie i mamy dyski SSD w EMC VMAX przez około 9 miesięcy. Nie widzieliśmy jeszcze żadnych awarii
Kiedyś prowadziłem trwającą kilka tygodni próbę wypalenia dysków SSD różnych dostawców. Uruchomiłem je w 100% przypadkowych zapisów przez około miesiąc. IO Fusion przy około 30 000 IOP na dysk, STEC / Intels około 7 000. Nigdy nie mogłem sprawić, że któryś z nich zawiedzie.
Fusion IO zapisało w tym miesiącu tyle, ile pojedynczy dysk SAS mógł wykonać w ciągu ponad dziesięciu lat.

Mamy około 150 dysków SSD i w ciągu ostatnich 12 miesięcy mieliśmy 1 awarię.
Używam dysków SSD w clariion cx4-960 przez prawie 12 miesięcy bez błędów (obejmujących duże ms sql tempdb).
Z własnego doświadczenia (pierwsze systemy SSD wysłane 2 i pół roku temu) wskazują, że wskaźnik awaryjności dysków SLC SSD mieści się w tym samym zakresie, co dyski obrotowe.

Otóż \u200b\u200bto. Jest coś do przemyślenia dla tych, którzy nadal uważają, że zasób SSD służy do pisania strasznie ograniczoneże dysk SSD jest zawodny, a gdy działają dyski Enterprise Flash Drive, umiera jak fałszywy chiński dysk flash USB Kinqston.

DZWON

Są tacy, którzy czytają tę wiadomość przed wami.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać The Bell
Bez spamu