internetul Windows. Android

Actualizați platforma 1c pe PostgreSQL. Instalați postgresql.

De îndată ce dimensiunea baza de fișiere. Datele 1c: Compania unuia dintre clienții noștri a atins în 32 GB (da, 32 GB), după cum urmează, totul este treptat a început să încetinească, și apoi a stat strâns, clienții noștri ne-au cerut să rezolvăm această problemă. Clasa Enterprise SSD îndulcită pe scurt la pilulă, dar după un timp totul sa întors la punctul de plecare. Ei bine, aici, aici și bunicii nu mergeți - mergeți la versiunea SQL a bazei de date.

Deoarece suntem utilizați de utilizatorii Windows, sunt disponibile doar două opțiuni pentru DBMS - acesta este MSSQL și PostgreSQL. Primul este bun pentru nebunie, dar costul nu a fost mulțumit. Și nu mai mulțumiți știrile despre licențele suplimentare de 1C pentru a lucra cu MSSQL. Prin urmare, postgresql.

Instrucțiuni detaliate de la Video Disponibil. În acest articol vom trece prin punctele-cheie.

Nu uitați de copierea de rezervă a bazelor de date!

Datele inițiale:

  • OS. Windows Server. 2008R2,
  • Intel core I7-2600K 3.40GHZ,
  • 32 GB RAM,
  • Intel SSD DC3700 100GB (numai în baza de date, OS pe un SSD separat),
  • de la 10 la 20 de utilizatori din baza de date zilnic,
  • schimbați cu 5 noduri de baze de date distribuite în fundal.

Ontineste, nu-i așa? Să continuăm.

1. Instalați postgresql și pgadmin.

Nu există revelații despre cum să descărcați postgresql nu va fi site-ul nostru preferat https://releases.c.ru, secțiunea "Distribuția tehnologică". Descărcați, puneți-vă. Nu uitați să instalați bibliotecile de runtime Microsoft Visual C ++ 2010 cu Service Pack 1, care merge într-o arhivă cu o distribuție. Ei au căzut pe ea: nu au instalat, au testat o mulțime de durere.

Inițializați un cluster de baze de date (marca de selectare). Și aici specificați setările contului pentru postgresql! IMPORTANT: Trebuie să executați serviciul "Logon secundar" (sau pe sistemul de operare localizat: "Intrarea secundară în sistem"). Codificarea UTF8 este, de asemenea, importantă!

pgadmin în acest ansamblu devine devenire. Mergem la https://www.postgresql.org/ftp/pgadmin3/release/. La momentul scrierii articolului versiune proaspătă. 1.22.1. Leagă-l, pune. Intra.

În procesul de instalare "Administrarea serverelor 1C Enterprise" Să nu ne oprim. Acesta este un subiect complet diferit. Da, și nu este nimic dificil acolo.

Creați o bază de date SQL în acest Snap, verificați PGADMIN - baza de date va apărea acolo dacă totul este corect.

2. Tuning PostgreSQL 9.4.2.

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

care se află aici:

C: \\ Program Files \\ PostgreSQL \\ 9.4.2-1.1C \\ Datele

Dacă vă înșelați cel puțin într-o singură literă, după actualizarea configurației PostgreSQL, nu porniți. Pentru a afla ce a cauzat ca motivul să fie dificil, chiar căutați în bușteni Windows. Prin urmare, nu modificați imediat mai mulți parametri și faceți backup-uri.

Pentru a edita config, există un instrument convenabil disponibil direct din fereastra principală PGADMIN. Aici este:

Ce schimbăm aici:

  • shared_buffers. - Numărul de memorie alocat de PGSQL pentru o pagină comună a paginilor. Această memorie este împărțită între toate procesele PGSQL. Împărțim memoria RAM disponibilă cu 4. În cazul nostru, este de 8 GB.
  • eficiente_cache_size - dimensiune cache de asamblare sistemul de fișiere. Se crede: RAM - shared_buffers. În cazul nostru, este de 32 GB - 8GB \u003d 24 GB. Dar personal, lasam acest parametru chiar mai mic, undeva de 20 GB este inca nevoie de RAM nu numai pentru postgresql.
  • random_page_cost. \u003d 1,5 - 2.0 pentru RAID, 1.1 - 1.3 pentru SSD. Costul citirii paginii aleatorii (în mod implicit 4). Cu cât este mai puțin sistemul de vizualizare a timpului, cu atât mai mic (dar\u003e 1.0) ar trebui să fie acest parametru. Peste mare importanță Parametrul crește PGSQL înclinat la alegerea planurilor cu scanarea întregii mese (PGSQL consideră că este mai ieftin să citească întreaga masă în mod consecvent decât indicele aleatoriu). Și asta e rău.
  • temp_buffers. \u003d 256 MB. Numărul maxim de pagini pentru mese temporare. Adică, aceasta este limita superioară a dimensiunii tabelelor de timp din fiecare sesiune.
  • work_mem. - Este considerat: RAM / 32..64 - În cazul nostru, se pare că este de 1 GB. Limita de memorie pentru procesarea unei cereri. Această memorie este individuală pentru fiecare sesiune. Teoretic, nevoia maximă de memorie este egală cu max_connections * work_mem, în practică nu se întâmplă deoarece majoritatea sesiunilor sunt aproape întotdeauna atârnate în anticipare.
  • bgwrite_delay. - 20ms. Timpul de somn între ciclurile de înregistrare la procesul de fundal disc. Acest proces El este responsabil pentru sincronizarea paginilor situate în Shared_Buffers cu un disc. Prea multă valoare a acestui parametru va duce la o creștere a încărcăturii asupra procesului de control și a proceselor de servire a proceselor (Backend). Valoarea redusă va duce la Încărcare completă Unul dintre nuclee.
  • sincronă_commit. - Off. PERICULOS! Dezactivați sincronizarea cu disc în momentul comiterii. Creează riscul de a pierde cele mai recente tranzacții multiple (în termen de 0,5-1 secunde), dar garantează integritatea bazei de date, există misiuni garantate în lanțul comitet. Dar crește semnificativ productivitatea.

Acesta nu este tot ceea ce a reușit să învețe de pe Internet și articole pe https://its.sc.ru. DAR! Chiar și aceste setări sunt suficiente pentru a accelera locul de muncă 1c: întreprindere la Postgresql.

În acest caz particular, după trecerea la PostgreSQL, utilizatorii au început să se plângă că 1c a început să încetinească chiar mai mult decât în \u200b\u200bversiunea de fișier. Dar după ce reglarea bazei "a zburat". Acum toată lumea se bucură lucrare rapidă. Cu toate acestea, există și minusurile sale sub formă de încuietori. Nu intenționăm să ne oprim, vom săpăm și să încărcați modificări utile în configurația PostgreSQL aici.

1 Nov 2012 Avantajele utilizării gratuite distribuite software. evident. Din păcate, deficiențele sunt evidente - nu suport oficial, adesea documentația este contradictorie, incompletă și împrăștiată de diferite surse. Acest articol va contribui la rezolvarea procesului de instalare POSGRESQL pentru "1c: întreprindere 8", evitând capcanele care nu sunt descrise în documentația oficială.

Componente necesare pentru instalare

Postgresql DBMS este distribuit gratuit și inclus în livrarea serverului de aplicații "1c". Server de aplicații "1c: întreprindere 8" vine în două versiuni: 32 de biți și 64 de biți. Postgre poate lucra cu ambele.

Deci, avem distribuții în mâinile tale:

  • Postgre: postgresql-9_1_2-1_1cx64.zip, curtoazie de la 1c.
  • Distribuția serverului de aplicații "1c: întreprindere" pentru Windows X64, versiunea 8.2.16.368.

Se pare că este mai ușor - alerga și se instalează. Uşor! Dar instalarea în modul standard va oferi o limită mică: clusterul va fi în folderul "Fișierele programului". Nu toată lumea îi place. Luați în considerare două opțiuni de instalare, simple și avansate.

Articolul este împărțit în 5 secțiuni:

1) Instalarea serverului 1C.

2) Instalarea postgreSQL în formă standard suficientă pentru a porni 1C fără setări suplimentare.

3) Instalați postgresql cu o selecție de dosar de stocare a clusterului.

4) Crearea unui nou baza de informare 1c.

5) Specificarea folderii de stocare a fișierelor bazei de date de pe serverul DBMS.

Înainte de a instala, asigurați-vă că ați citit întregul articol!

Instalarea serverului de aplicații 1c

Rulați setup.exe din dosarul de distribuție a serverului 1C.

În cazul în care instalați serverul de aplicații nu ca un serviciu, va trebui să o executați manual de fiecare dată. Această opțiune este rareori necesară. Instalăm ca un serviciu (serviciu) și rezolvăm, sub ceea ce acesta va fi lansat. Din motive de securitate, este mai bine să creați utilizator separat USR1CV82, și nu permite serviciului să lucreze sub drepturi depline.

După instalarea serverului de aplicații, sistemul va propune instalarea driverului cheie de protecție HASP. De acord:

Așteptăm mesajul:

Dacă mesajul este diferit, sistemul, cel mai probabil, a rămas "cozi" de la setările anterioare ale driverelor HASP. Eliminați-le pe toate și încercați din nou.

Ready, Server de aplicații "1C: Enterprise 8" Am instalat cu succes.

Instalați postgresql în formularul standard suficient pentru a porni 1c fără setări suplimentare

Rulați "PostgreSQL-9.1.2-1.1C (X64) .msi"

Opțiunile de instalare nu pot fi modificate, 1c va funcționa. Mai departe.

Postgre, cum ar fi serverul 1C, poate crea un utilizator care va începe serviciul sub. Vă atrag atenția asupra faptului că dacă specificați cont Cu drepturile de administrator, serviciul nu va funcționa corect. Asigurați-vă că creați un nou utilizator.

Următoarea fereastră de instalare.

Inițializați clusterul. Dacă avem un server de baze de date și un server de aplicații 1C sunt activate diferite computere, apoi instalați o bifă "Conexiuni de conectare din orice IP", altfel nu atingeți. Asigurați-vă că specificați codificarea UTF8. Creați Superuser DBMS. Mai departe…

Pentru munca inițială, nu avem nevoie de niciun fel, luați o bifă, completați instalarea.

Rezultatul efortului nostru este gata să lucreze postgresql. Dacă suntem mulțumiți de faptul că bazele se vor afla în fișierele program \\ postgresql \\ 9.1.2-1.1c \\ date - terminăm pe ea, dezvăluiem bazele și bucurați-vă de proces. Cu toate acestea, bazele de date tot mai des sunt "minciună" pe destinate special pentru aceste rețele de discuri și nu pe discul sistemului. Pentru a configura locația datelor, citiți următoarea partiție înainte de instalare.

Instalare postgre cu selecție de stocare a clusterului

Mergem la instalarea postgre și efectuăm toți pașii până când se propune inițializarea clusterului:

Scoateți caseta "Inițializați un cluster de bază de date" și faceți clic pe "Next".

Da sigur.

Scoateți caseta de selectare "pentru a rula Stack Builder" și completați instalarea.

1. Trebuie să oferiți drepturi depline dosarului în care am instalat PostgreSQL, de obicei acest C: \\ Program Files \\ Postgresql

2. De la sub drepturile de administrare, alergăm CMD. Dacă faceți în Win7, continuați de la administrator.

3. Creați un dosar în care va fi stocat clusterul. De exemplu D: \\ postgredata.

mD D: \\ postgredmata

4. Suntem inițializați de cluster, indicând manual calea în care va fi.

"C: \\ Program Files \\ PostgreSQL \\ 9.1.2-1.1C \\ bin \\ initdb.exe" -d D: \\ postgredmata --locale \u003d ruse_russia --Encooding \u003d UTF8 -U Postgres

5. Ștergeți postgresql, care a fost instalat în timpul instalării.

sC DELETE PGSQL-9.1.2-1.1C-X64

Unde PGSQL-9.1.2-1.1C-X64 este numele serviciului. Dacă nu știți numele sigur, puteți vedea proprietățile serviciului "PostgreSQL Baza de date server ..." (Panou de control de pornire - Administrare - Servicii)

6. Creați serviciu nou indicând clusterul nostru

"C: \\ Program Files \\ PostgreSQL \\ 9.1.2-1.1C \\ bin \\ pg_ctl" Înregistrați -N PGSQL -U PostgreSQL -P Parola -D D: / Postgredata

7. Acum mergeți la serviciu. Panoul de pornire - Panoul de control - Administrație - Servicii și începeți serviciul nostru.

Crearea unei noi baze de date 1C pe server cu Postgresql

Există mai multe opțiuni pentru crearea unei baze de date. Puteți încerca să creați o bază de date prin intermediul consolei de administrare a serverului PGADmin3, 1C. Dar aici veți întâlni cu o mulțime de întrebări incomprehensibile și o grămadă de greșeli, răspunsurile la care veți căuta mult timp. Lăsați-l pentru specialiști. Sarcina noastră este de a obține o bază viabilă cu un efort minim. Să descriem cel mai simplu mod de a realiza acest lucru.

Lansați clientul 1C.

Faceți clic pe "Adăugați ...".

Vom veni cu numele de bază, specificăm "pe serverul 1c: întreprinderi", atunci.

Cluster de server 1C: Întreprinderi - LocalHost, dacă creăm o bază de date pe același computer în care este instalat serverul 1C sau numele serverului de aplicație 1c, dacă pe celălalt.

Numele bazei de informații în cluster - În viitor, acest nume va fi specificat când este conectat de la alte computere.

DBMS Tip. - Selectați postgresql.

Serverul bazei de date. - Indicați numele servere postgresql.. Dacă creați o bază de date pe server, specificați și localhost.

Numele bazei de date - Cu un astfel de nume, baza va fi creată în postgresql.

Parolă de utilizator - Numele utilizatorului pe care l-am indicat ca un superuser la instalarea postgresql. Asigurați-vă că ați ridicat o bifă "Creați o bază de date în cazul absenței sale".

Întrebarea apare - și unde va fi păstrată baza fizică? În dosarul de bază al clusterului specificat. Și dacă nu vrem să minți acolo, unde sunt toate bazele? Nu este nimic de făcut nimic aici, să creați o bază și să mergeți mai departe. Mai departe…

Specificați dosarul de stocare a bazei de date

Deci, am creat baza. În majoritatea cazurilor, această instalare se termină. Cu toate acestea, dacă există o mulțime de baze și există mai multe matrice de disc pentru grupuri diferite Bazele, trebuie să specificați unde trebuie localizată baza. Pentru a face acest lucru, executați PGADMIN3 de la Start - Programe - PostgreSQL. Conectați-vă la serverul nostru.

Când faceți prima dată Postgre, întreabă parola pentru utilizatorul postgres (pe care l-am creat în timpul instalării).

Creați un spațiu de table nou, acesta va fi dosarul în care vor fi stocate bazele noastre de date.

A indicat locația stocării fișierelor de bază. O.K.

Acum deschideți proprietățile bazei de date create anterior, plasarea pe care dorim să o schimbăm.

Schimbați proprietatea dinspre. După ce faceți clic pe "OK", fișierele bazei de date vor fi mutate automat. Gata! Sperăm că articolul ți-a fost de ajutor. Dacă da - lăsați comentarii, partajați link-uri către această pagină. Mulțumesc!

Odată ce dimensiunea bazei de date a fișierelor 1C: întreprinderea unuia dintre clienții noștri a atins în 32 GB (da, 32 GB), ca rezultat, totul este treptat a început să încetinească, iar apoi a căzut strâns, clienții noștri ne-au cerut să rezolvăm această problemă. Clasa Enterprise SSD îndulcită pe scurt la pilulă, dar după un timp totul sa întors la punctul de plecare. Ei bine, aici, aici și bunicii nu mergeți - mergeți la versiunea SQL a bazei de date.

Deoarece suntem utilizați de utilizatorii Windows, sunt disponibile doar două opțiuni pentru DBMS - acesta este MSSQL și PostgreSQL. Primul este bun pentru nebunie, dar costul nu a fost mulțumit. Și nu mai mulțumiți știrile despre licențele suplimentare de 1C pentru a lucra cu MSSQL. Prin urmare, postgresql.

Instrucțiuni detaliate de la Video Disponibil. În acest articol vom trece prin punctele-cheie.

Nu uitați de două baze de date!

Datele inițiale:

  • OS. Windows Server 2008R2,
  • Intel core i7-2600K. 3.40GHz,
  • 32 GB. Berbec
  • Intel. SSD DC3700. 100GB (numai în baza de date, OS pe un SSD separat),
  • de la 10 la 20 Utilizatorii din baza de date zilnic,
  • schimbați cu 5. noduri. Baza de date distribuită în fundal.

Ontineste, nu-i așa? Să continuăm.

1. Instalați postgresql și pgadmin.

Nu există revelații despre cum să descărcați postgresql nu va fi site-ul nostru preferat https://releases.c.ru, secțiunea "Distribuția tehnologică". Descărcați, puneți-vă. Nu uitați să instalați bibliotecile de runtime Microsoft Visual C ++ 2010 cu Service Pack 1, care merge într-o arhivă cu o distribuție. Ei au căzut pe ea: nu au instalat, au testat o mulțime de durere.

Inițializați un cluster de baze de date (marca de selectare). Dar aici cerem parametrii contul postgresql!IMPORTANT: Trebuie să executați serviciul "Logon secundar" (sau pe sistemul de operare localizat: "Intrarea secundară în sistem"). Codificarea UTF8 - De asemenea, acest lucru este important!


pgadmin în acest ansamblu devine devenire. Mergem la https://www.postgresql.org/ftp/pgadmin3/release/. La momentul scrierii articolului, cea mai recentă versiune 1.22.1. Leagă-l, pune. Intra.

În procesul de instalare "Administrarea serverelor 1C Enterprise" Să nu ne oprim. Acesta este un subiect complet diferit. Da, și nu este nimic dificil acolo.

Creați o bază de date SQL în acest Snap, verificați PGADMIN - baza de date va apărea acolo dacă totul este corect.

2. Tuning PostgreSQL 9.4.2.

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

care se află aici:

C: \\ Program Files \\ PostgreSQL \\ 9.4.2-1.1C \\ Datele

Dacă vă înșelați cel puțin într-o singură literă, după actualizarea configurației PostgreSQL, nu porniți. Pentru a afla ce a cauzat ca motivul să fie dificil, chiar căutați în bușteni Windows. Prin urmare, nu modificați imediat mai mulți parametri și faceți backup-uri.

Pentru a edita config, există un instrument convenabil disponibil direct din fereastra principală PGADMIN. Aici este:

Ce schimbăm aici:

  • shared_buffers. - Numărul de memorie alocat de PGSQL pentru o pagină comună a paginilor. Această memorie este împărțită între toate procesele PGSQL. Împărțim memoria RAM disponibilă cu 4. În cazul nostru, este de 8 GB.
  • eficiente_cache_size - Evaluarea dimensiunii cache-ului sistemului de fișiere. Se crede: RAM - shared_buffers. În cazul nostru, este de 32 GB - 8GB \u003d 24 GB. Dar personal, las acest parametru chiar mai mic, undeva 20Gb. - Totuși, RAM este necesar nu numai pentru PostgreSQL.
  • random_page_cost. \u003d 1,5 - 2.0 pentru raid, 1.1 - 1.3 pentru SSD.Costul citirii paginii aleatorii (în mod implicit 4). Cu cât este mai puțin sistemul de vizualizare a timpului, cu atât mai mic (dar\u003e 1.0) ar trebui să fie acest parametru. În plus, parametrul crește PGSQL înclinat la alegerea planurilor de a scana întreaga masă (PGSQL consideră că este mai ieftin să citească întregul tabel mai ieftin decât indexul aleatoriu). Și asta e rău.
  • temp_buffers. = 256 M.. Numărul maxim de pagini pentru mese temporare. Adică, aceasta este limita superioară a dimensiunii tabelelor de timp din fiecare sesiune.
  • work_mem. - Se crede: RAM / 32..64. - În cazul nostru se dovedește 1GB.. Limita de memorie pentru procesarea unei cereri. Această memorie este individuală pentru fiecare sesiune. Teoretic, nevoia maximă de memorie este egală cu max_connections * work_mem, în practică nu se întâmplă deoarece majoritatea sesiunilor sunt aproape întotdeauna atârnate în anticipare.
  • bgwrite_delay.20ms. Timpul de somn între ciclurile de înregistrare la procesul de fundal disc. Acest proces este responsabil pentru sincronizarea paginilor situate în Shared_Buffers cu un disc. Prea multă valoare a acestui parametru va duce la o creștere a încărcăturii asupra procesului de control și a proceselor de servire a proceselor (Backend). O valoare mică va lua încărcarea completă a unuia dintre miezuri.
  • sincronă_commit.off.. PERICULOS!Dezactivați sincronizarea cu disc în momentul comiterii. Creează riscul de a pierde cele mai recente tranzacții multiple (în termen de 0,5-1 secunde), dar garantează integritatea bazei de date, există misiuni garantate în lanțul comitet. Dar crește semnificativ productivitatea.

Acesta nu este tot ceea ce a reușit să învețe de pe Internet și articole pe https://its.sc.ru. DAR! Chiar și aceste setări sunt suficiente pentru a accelera locul de muncă 1c: întreprindere la Postgresql.

În acest caz particular, după trecerea la PostgreSQL, utilizatorii au început să se plângă că 1c a început să încetinească chiar mai mult decât în \u200b\u200bversiunea de fișier. Dar după ce reglarea bazei "a zburat". Acum toată lumea se bucură de o muncă rapidă. Cu toate acestea, există și minusurile sale sub formă de încuietori. Nu intenționăm să ne oprim, vom săpăm și să încărcați modificări utile în configurația PostgreSQL aici.

Dacă au apărut unele probleme cu baza de date, poate că vă va ajuta.

Aveți întrebări?

Ceva n-a mers bine? Specialiștii companiei noastre vă vor ajuta să vă ocupați de problemele care au apărut! A lua legatura! →

Instrucțiuni de instalare PostgreSQL 9.0.3-3.1C pe Windows Server 2008 x64

Pentru a instala, utilizați pachetul - PostgreSQL 9.0.3-1C (x 86 sau x 64).

Rulați pachetul MSI:

Noi celebram marcajul de verificare dacă se observă "directorul cu date", PSQL și PGADMIN III. Mai departe.

Instalați "ca serviciu". Pentru a lucra acest serviciu va necesita un utilizator special. Specificați contul, domeniul (dacă este disponibil) și parola. Mai departe.

Dacă nu există un astfel de utilizator în sistem, comandantul va sugera crearea unui nou. Răspundem "da" - utilizatorul este creat. Mai departe.

Acum inițializați baza de date. Specificați portul 5432. Verificăm că codarea UTF 8 este setată de datele de conectare și parola de utilizator PostGreSQL (sistemul avertizează că parola de utilizator și parola de utilizator postgreSQL nu ar trebui să se potrivească - luați în considerare). Dacă un cluster de server 1C și postgresql pe diferite mașini, puneți o bifă "Mențineți conexiuni de la orice IP și nu doar cu localhost." Mai departe.

Poate apărea o eroare " Logon secundar ». Apoi mergem la "Administrație" - "Servicii". Porniți serviciul "Login secundar" sau "Logon secundar":


Programul este setat.

Prin meniul "Start" - "Toate programele" execută utilitarul de administrare "PGADMIN III".

Conectați-vă la server. Introducem parola pentru utilizatorul "Postgres". Dacă reușiți să vă conectați, să încercăm să creăm baza nouă Mijloace de 1c în sine.

Rulați clientul Partea 1C. Faceți clic pe butonul "Adăugați", setați serverul 1C Server. Apoi, completați următoarele: server de bază de date (IP sau DNS numele serverului respectiv, în care PostGreSQL) - dacă este același cu clusterul 1C, apoi specificați 127.0.0.1. Numele bazei de date: [oricum]. Utilizator: "Postgres" Parolă: [your_pall_postgres]. Mai departe.

Verificăm că baza 1C este creată cu succes.

Sub setările specificate nu sunt o panaceu, ele trebuie ajustate cu capacitatea disponibilă reală. Numărul real de utilizatori și informații despre intensitate (scris).Când setările, sistemul este, de asemenea, important cât de profesionist este cel care îl stabilește.

Ce instalare OS:

CPU

autovacuum_max_workers \u003d ncores / 4..2 dar nu mai puțin de 4

Numărul de procese de autowacum. Regula generală este cu atât mai multe cereri de scriere, cu atât mai multe procese. Pe baza de date numai pentru citire este suficientă de același proces.

SSL \u003d OFF.

Oprirea criptării. Pentru CDM-urile protejate, criptarea este lipsită de sens, dar duce la o creștere a încărcării CPU

Memorie

Shared_buffers \u003d RAM / 4

Numărul de memorie alocată PGSQL pentru o pagină crescută. Această memorie este împărțită între toate procesele PGSQL. Sistemul de operare însăși înregistrează datele, deci nu este nevoie să redirecționați întreaga memorie operațională în numerar în memoria cache.

Temp_buffers \u003d 256 M.

Numărul maxim de pagini pentru mese temporare. Acestea. Aceasta este limita superioară a dimensiunii tabelelor de timp din fiecare sesiune.

Work_mem \u003d RAM / 32..64 sau 32MB..128MB

Limita de memorie pentru procesarea unei cereri. Această memorie este individuală pentru fiecare sesiune. Teoretic, nevoia maximă de memorie este egală cu max_connections * work_mem, în practică nu se întâmplă deoarece majoritatea sesiunilor sunt aproape întotdeauna atârnate în anticipare. Această valoare de recomandare este utilizată de un optimizator: Încearcă să prezică dimensiunea memoriei necesare pentru solicitare și, dacă această valoare este mai mare decât Work_mem, atunci indică faptul că executantul creează imediat o masă temporară. Work_mem nu este în limita completă de sens: Optimizatorul poate, de asemenea, să rateze, iar cererea va lua mai multă memorie, poate. Această valoare poate fi redusă urmând numărul de fișiere temporare create:

Întreținere_work_mem \u003d RAM / 16..32 sau Work_mem * 4 sau 256MB..4GB

Limita de memorie pentru servirea sarcinilor, cum ar fi colectarea de statistici (analiza), asamblarea gunoiului (vid), creați indici și adăugarea cheilor externe. Dimensiunea memoriei alocate în cadrul acestor operații ar trebui să fie comparabilă cu dimensiunea fizică a celui mai mare indice de pe disc.

Eficiente_cache_size \u003d RAM - Shared_buffers

Evaluarea dimensiunii sistemului de fișiere cache. O creștere a parametrului crește tendința sistemului de a alege planurile indexscan. Și acest lucru este bun.

Discuri

Eficiente_io_concurrency \u003d 2 (numai pentru sistemele Linux, nu se aplică pentru Windows)

Valoarea estimată a solicitărilor simultane către sistemul de disc, pe care le poate servi în același timp. Pentru un singur disc \u003d 1, pentru RAID - 2 sau mai mult.

Random_page_cost \u003d 1.5-2.0 pentru raid, 1.1-1.3 pentru SSD, 0.1 pentru NVME

Costul citirii paginii aleatorii (în mod implicit 4). Cu cât este mai puțin sistemul de vizualizare a timpului, cu atât mai mic (dar\u003e 1.0) ar trebui să fie acest parametru. În plus, parametrul crește PGSQL înclinat la alegerea planurilor de a scana întreaga masă (PGSQL consideră că este mai ieftin să citească întregul tabel mai ieftin decât indexul aleatoriu). Și asta e rău.

SEQ_PAGE_COST \u003d 0,1 pentru discurile NVME Autovacuum \u003d On

Pornirea lui Avtovakuuma.

Autovacuum_naptime \u003d 20s.

Timpul de somn al procesului Avtovakuum. Prea multă valoare va duce la faptul că tabelele nu vor avea timp să se evapore și, ca urmare, umflarea va crește și mărimea tabelelor și a indiciilor. Valoarea mică va duce la încălzire inutilă.

Bgwriter_delay \u003d 20ms.

Timpul de somn între ciclurile de înregistrare la procesul de fundal disc. Acest proces este responsabil pentru sincronizarea paginilor situate în Shared_Buffers cu un disc. Prea multă valoare a acestui parametru va duce la o creștere a încărcăturii asupra procesului de control și a proceselor de servire a proceselor (Backend). O valoare mică va lua încărcarea completă a unuia dintre miezuri.

Bgwriter_lu_multiplier \u003d 4.0 bgwriter_lu_maxpages \u003d 400

Parametrii care controlează intensitatea procesului de înregistrare a procesului de înregistrare. Pentru un ciclu de bgwriter, nu înregistrează mai mult decât a fost înregistrat în ultimul ciclu, înmulțit cu bgwriter_lru_multiplier, dar nu mai mult de Chebgwriter_lru_maxpages.

Sincronous_commit \u003d oprit.

Dezactivați sincronizarea cu disc în momentul comiterii. Creează riscul de a pierde cele mai recente tranzacții multiple (în termen de 0,5-1 secunde), dar garantează integritatea bazei de date, există misiuni garantate în lanțul comitet. Dar crește semnificativ productivitatea.

Checkpoint_segments \u003d 32..256.< 9.5

Numărul maxim de segmente WAL între punctul de control. Punctul de control prea frecvent conduce la o sarcină semnificativă pe subsistemul disc prin scriere. Fiecare segment are o dimensiune de 16 MB

Checkpoint_completion_target \u003d 0.5..0.9.

Gradul de control "pliabil". Viteza de înregistrare în timpul punctului de control este reglată astfel încât timpul punctului de control a fost egal cu timpul trecut de trecut, înmulțit cu ținta de checkpoint_completition_.

Min_wal_size \u003d 512Mb .. 4G\u003e \u003d 9,5 max_wal_size \u003d 2 * min_wal_size\u003e \u003d 9,5

Cantitatea minimă și maximă a fișierelor WAL. Similar cu checkpoint_segments.

Fsync \u003d on.

Oprirea parametrului duce la o creștere a performanței, dar există un risc semnificativ de a pierde toate datele cu putere bruscă. ATENȚIE: Dacă RAID are o memorie cache și fi în modul de scriere, verificați prezența și funcționalitatea bateriei cache Controlerul raidFotografiile! În caz contrar, datele înregistrate în memoria cache RAID pot fi pierdute atunci când alimentarea este oprită și, ca rezultat, PGSQL nu garantează integritatea datelor.

Comite_delay \u003d 1000.

Întrerupeți (în microsecunde) înainte de a efectua salvarea WAL

Comite_siblings \u003d 5.

Numărul minim de tranzacții deschise în același timp în care va fi adăugată întârzierea comitetului_delay

Tranzacții multiple de grup. Este logic să porniți dacă rata tranzacției depășește 1000 TPS. În caz contrar, efectul nu are efect.

Temp_tablespaces \u003d "name_of_tablespace"

Spațiu pe disc pentru mese / indexuri temporare. Plasarea tabelelor / indexurilor temporare pe discuri separate poate crește productivitatea. Anterior, trebuie să creați o comandă de comandă pentru table. Dacă caracteristicile discurilor diferă de principalele discuri, comanda ar trebui să specifice costul corespunzător aleatom_page_. Cm. .

row_Security \u003d OFF\u003e \u003d 9,5

Dezactivați controlul rezoluției nivelului de înregistrare

Max_files_per_process \u003d 1000 (implicit)

Suma maximă deschideți fișiere Pentru un proces postresql. Un fișier este cel puțin indicele, fie tabelul, dar tabelul / poate consta din mai multe fișiere. Dacă PostgreSQL se bazează pe această limită, începe să deschidă / închide fișierele, ceea ce poate afecta performanța. Puteți diagnostica problema sub Linux utilizând comanda LSOF.

Net

Max_connections \u003d 500..1000.

Numărul de conexiuni / sesiuni simultane
Dacă aveți mai mult de 100 de utilizatori, atunci este mai bine să specificați valoarea manuală pentru acest parametru după numărul de utilizator

Problemă tipică în Windows

Eroare DBMS: nu a putut trimite date către server: Nu este disponibil spațiu tampon (0x00002747 / 10055)

Când utilizați operațional sisteme Windows.Numărul maxim standard de porturi TCP temporare este de 5000. Când încercați să instalați o conexiune TCP prin porturile ale căror numere depășesc 5000, se emite un mesaj de eroare. Cu alte cuvinte, trebuie să măriți numărul de porturi disponibile în registru, unde să selectați parametrii (HKEY_LOCAL_MACHINE \\ SYSTEM \\ CURRENTCONTROLSET \\ SERVICII \\ tcpip \\ parametri) și adăugați următorul parametru Registru MaxUsersport.cu tipul: Dword.și adică: 65534 (Valori valide: 5000-65534)

Lacăt

max_locks_per_transaction \u003d 256.

Numărul maxim de încuietori / tabele index într-o singură tranzacție

Setări pentru platforma 1c

Standard_conforming_strings \u003d oprit.

Permiteți utilizarea simbolului \\ pentru ecranare

Escape_String_Warning \u003d Off.

Nu emiteți un avertisment cu privire la utilizarea unui simbol \\ pentru ecranare

Shared_preload_librurseys \u003d "online_analyze, plantuner"

mai multe biblioteci comune care vor fi descărcate când pornirea serverului
Dacă biblioteca specificată în acesta nu este găsită, serverul nu va porni
Setarea parametrului are mai multe valori pentru Linux, deși Windows ar trebui să o facă și ea

Modulul online_analyze oferă un set de funcții care actualizează imediat statisticile după introducerea, actualizarea, ștergerea sau selectarea în operații în tabelele țintă.
Modulul Plantune Adaugă suport pentru instrucțiuni pentru un programator pentru a dezactiva sau a conecta anumite indici la executarea interogării.

Online_nalyze.Enable \u003d On.

Inconstructii statistici de tabel temporar, frecvent utilizate în 1c

Optimizer.

implicit_statistics_target \u003d 1000 -10000

(Îmbunătățirea statisticilor de optimizare)

Enable_NESTLOOOOOOOOOOOOOOOOOOOOOOF \u003d OFF, ENALL_MERGEJOIN \u003d OFF

(Schimbarea parametrilor de optimizare)
● Include sau deconectează utilizarea planurilor planurilor de conectare cu cicluri imbricate
● Include sau dezactivează utilizarea planurilor de conectare la fuziune.
De exemplu, din erorile de memorie

Join_collapse_limit \u003d 1.

(Deconectarea la înțelegerea ordinii conexiunilor tabelelor!)
● Cu o valoare egală cu 1, sugestiile de îmbinare nu vor fi rearanjate, astfel încât acesta este specificat în mod clar în ordinea interogării
Compușii vor determina ordinea reală în care vor fi conectate relațiile.
Alte setări care afectează optimizatorul

De la_collapse_limit \u003d 20.

● Specifică suma maximă Elemente din lista din listă, înainte de realizarea cărora planificatorul va demola design-ul explicit (cu excepția aderării complete). La valori mai mici, timpul de planificare este redus, dar planul de solicitare poate fi mai puțin eficient.
● SEQ_PAGE_COST \u003d 0,1 RANDOM_PAGE_COST \u003d 0.4 CPU_OPERATOR_COST \u003d 0.00025

On-line_nalyze.table_type \u003d "Toate"

(Mai multă încărcătură)
Tipuri de tabele pentru care se efectuează analize imediate: toate (toate), persistente (permanente), temporară (temporară), nici una (nu).

On-line_nalyze.threshold \u003d 50.

● Numărul minim de modificări ale cursei, după care poate începe o analiză imediată (acest parametru este similar cu autovacuum_analyze_threshold).

On-line_nalyze.scale_factor \u003d 0,1.

Procentul dimensiunii tabelului în care începe analiza imediată (acest parametru este similar cu autovacuum_nalyze_scale_factor).

On-line_nalyze.min_interval \u003d 10000.

● Intervalul de timp minim între analiza provocărilor pentru o masă separată (în milisecunde).

On-line_nalyze.local_tracking \u003d off.

● Inline_nalyze Urmărirea meselor temporare în cadrul procesului de service. Când această variabilă este dezactivată (OFF), Online_analyze utilizează statisticile implicite ale sistemului pentru tabele temporare.

On-line_analyze.verbose \u003d "off"

● Dezactivează mesajele detaliate de extensie online_nalyze

Plantuner.fix_empty_table \u003d "On"

● Plantunener va reseta numărul de pagini / tuple într-un tabel care nu conține blocuri în fișier