PostgreSQL 9.4.2-1.1C Dostrajanie dla 1C: Enterprise 8.3: Niezawodne dostosowywanie

  1. 1. Instalowanie PostgreSQL i pgAdmin.
  2. 2. Dostrajanie PostgreSQL 9.4.2.

Jak tylko rozmiar 1C: Baza danych plików korporacyjnych jednego z naszych klientów osiągnęła rozmiar 32 GB (tak, 32 GB), w wyniku czego wszystko stopniowo zaczęło zwalniać, a następnie spadło, nasi klienci poprosili nas o rozwiązanie tego problemu

Jak tylko rozmiar 1C: Baza danych plików korporacyjnych jednego z naszych klientów osiągnęła rozmiar 32 GB (tak, 32 GB), w wyniku czego wszystko stopniowo zaczęło zwalniać, a następnie spadło, nasi klienci poprosili nas o rozwiązanie tego problemu. Klasa SSD Enterprise osłodzi pigułkę na chwilę, ale po chwili wszystko wróciło do punktu wyjścia. Cóż, tutaj i nie idź do babci - przejdź do wersji SQL bazy danych.

Ponieważ jesteśmy gorącymi użytkownikami systemu Windows, dostępne są tylko dwa warianty DBMS - są to MSSql i PostgreSQL. Pierwszy jest dobry do szaleństwa, ale koszt nie jest zadowolony. Jeszcze więcej nie było zadowolonych z wiadomości o dodatkowych licencjach 1C do pracy z MSSQL. Dlatego PostgreSQL.

Szczegółowe instrukcje z dostępnym wideo. tutaj . W tym artykule przejdziemy przez kluczowe punkty.

Nie zapomnij o z powrotem Bazy danych 1C!

Linia bazowa:

  • Windows Server 2008R2,
  • Intel Core i7-2600K 3,40 GHz,
  • 32 GB pamięci RAM,
  • Intel SSD DC3700 100 Gb (tylko dla DB, OS na osobnym dysku SSD),
  • codziennie od 10 do 20 użytkowników w bazie danych,
  • wymiana z 5 węzłami rozproszonej bazy danych w tle.

Złowrogi, prawda? Zacznijmy

1. Instalowanie PostgreSQL i pgAdmin.

Brak informacji o tym, skąd będzie pobierany PostgreSQL - to nasza ulubiona strona. https://releases.1c.ru , sekcja „Dystrybucja technologiczna”. Pobierz, ustaw. Nie zapomnij zainstalować BIBLIOTEK RUNTIME MICROSOFT VISUAL C ++ 2010 z pakietem serwisowym 1, który jest dołączony do archiwum z zestawem dystrybucyjnym. Oni sami na to wpadli: nie zainstalowali go, doświadczyli dużo bólu.

Dalej wszystko układamy dalej, z wyjątkiem następnych chwil. Ustaw jako usługę (zaznacz) i ustaw parametry konta Windows, a nie PostgreSQL.

Ustaw jako usługę (zaznacz) i ustaw parametry konta Windows, a nie PostgreSQL

Zainicjuj klaster bazy danych (zaznacz). I tutaj ustawiamy parametry konta dla PostgreSQL! Ważne: musisz mieć uruchomioną usługę Logowanie pomocnicze (lub zlokalizowane systemy operacyjne: „Logowanie dodatkowe” ). Kodowanie UTF8 jest również ważne!

Zainicjuj klaster bazy danych (zaznacz)

Co więcej, nic ciekawego. Więcej ...

pgAdmin jest trochę stary w tej kompilacji. Idziemy do https://www.postgresql.org/ftp/pgadmin3/release/ . W chwili pisania tego tekstu najnowsza wersja 1.22.1. My to huśtamy. Idziemy.

Podczas procesu instalacji przystawka „Enterprise 1C Servers Administration” nie zostanie zatrzymana. To jest zupełnie inny temat. Tak, i nie ma nic skomplikowanego.

Tworzymy bazę danych SQL w tej przystawce, sprawdź w pgAdmin - baza danych pojawi się tam, jeśli wszystko jest poprawne.

2. Dostrajanie PostgreSQL 9.4.2.

2

Następnie wjeżdżamy w nasze głowy: przed zapisaniem nowych ustawień, wykonaj kopie zapasowe plików:

  • pg_hba.conf
  • postgresql.conf
  • pgpass.conf

które tu leżą:

C: Program Files PostgreSQL 9.4.2-1.1C Informacje

Jeśli popełnisz błąd nawet w jednej literze, po aktualizacji konfiguracji PostgreSQL nie uruchomi się. Trudno będzie ustalić, co go spowodowało, nawet patrząc na dzienniki systemu Windows. Dlatego nie zmieniaj wielu parametrów jednocześnie i twórz kopie zapasowe.

Aby edytować konfigurację, dostępne jest wygodne narzędzie dostępne bezpośrednio z głównego okna pgAdmin. Oto jest:

Oto jest:

Co tu zmieniamy:

  • shared_buffers - Ilość pamięci przydzielonej przez PgSQL do udostępniania pamięci podręcznej stron. Ta pamięć jest wspólna dla wszystkich procesów PgSQL. Dzielimy dostępną pamięć RAM na 4. W naszym przypadku jest to 8 GB.
  • efficient_cache_size - Oszacuj rozmiar pamięci podręcznej systemu plików. Uważa się, że: RAM - shared_buffers. W naszym przypadku jest to 32 GB - 8 GB = 24 GB. Ale osobiście pozostawiam ten parametr jeszcze niżej, gdzieś 20 GB - w końcu RAM jest potrzebny nie tylko dla PostgreSQL.
  • random_page_cost = 1.5 - 2.0 dla RAID, 1.1 - 1.3 dla SSD. Koszt odczytu losowej strony (domyślnie 4). Im mniej czasu wyszukiwania systemu dyskowego, tym mniej (ale> 1,0) tego parametru powinien być. Niepotrzebnie duża wartość parametru zwiększa tendencję PgSQL do wybierania planów ze skanowaniem całej tabeli (PgSQL uważa, że ​​taniej jest konsekwentnie odczytywać całą tabelę niż indeks losowy). I to jest złe.
  • temp_buffers = 256Mb . Maksymalna liczba stron dla tabel tymczasowych. Oznacza to, że jest to górna granica rozmiaru tabel tymczasowych w każdej sesji.
  • work_mem - Uważa się, że: RAM / 32..64 - w naszym przypadku okazuje się, że 1 GB . Limit pamięci do przetwarzania pojedynczego żądania. Ta pamięć jest indywidualna dla każdej sesji. Teoretycznie maksymalna wymagana pamięć jest równa max_connections * work_mem, w praktyce nie występuje, ponieważ większość sesji prawie zawsze zawiesza się.
  • bgwrite_delay - 20ms. Czas uśpienia między cyklami zapisu do procesu zapisywania w tle dysku. Ten proces jest odpowiedzialny za synchronizację stron znajdujących się w dzielonych buforach z dyskiem. Zbyt duża wartość tego parametru zwiększy obciążenie procesu punktu kontrolnego i procesów obsługujących sesję (backend). Niska wartość spowoduje pełne obciążenie jednego z rdzeni.
  • synchronous_commit - off . NIEBEZPIECZEŃSTWO! Wyłącz synchronizację dysku w momencie zatwierdzania. Stwarza to ryzyko utraty kilku ostatnich transakcji (w ciągu 0,5-1 sekundy), ale gwarantuje integralność bazy danych, w łańcuchu zatwierdzeń nie ma luk. Ale znacznie zwiększa wydajność.

Nie jest to wszystko, czego nauczyliśmy się z Internetu i artykułów na ten temat https://its.1c.ru . ALE! Nawet te ustawienia będą wystarczające do przyspieszenia pracy 1C: Enterprise w PostgreSQL.

W tym konkretnym przypadku, po przejściu na PostgreSQL, użytkownicy zaczęli narzekać, że 1C zaczął zwalniać jeszcze bardziej niż w wersji pliku. Ale po tym tuningu baza „poleciała”. Teraz wszyscy cieszą się szybką pracą. Istnieją jednak również wady w postaci zamków. Nie zamierzamy się nad tym zastanawiać, będziemy kopać dalej i zamieścić tutaj przydatne zmiany w konfiguracji PostgreSQL.

Jeśli są jakieś problemy z bazą danych, może ci to pomóc. testy wewnętrzne lub zewnętrzne .

Baza danych 1C może publikuj na serwerach internetowych !

Złowrogi, prawda?