GNU/Linux >> Linux Esercitazione >  >> Linux

Come calcolare max_connections per PostgreSQL e default_pool_size per pgbouncer?

Innanzitutto, leggi la nostra domanda canonica sulla pianificazione della capacità.

Secondo, stai guardando questo sbagliato.
La quantità di memoria (o qualsiasi altra risorsa) che hai non determina il numero di connessioni che imposti, il numero di connessioni di cui hai bisogno determina quanto è robusto un server che devi acquistare.
I requisiti delle risorse per connessione sono forniti nel manuale in modo molto dettagliato, nonché discussi sul Wiki a cui ti sei collegato. Scopri di cosa ha bisogno il tuo ambiente (o fai un'ipotesi plausibile) e assicurati che l'hardware su cui eseguirai sia in grado di gestire ciò che gli lancerai.

In particolare per quanto riguarda i limiti di connessione e le dimensioni del pool, dovresti disporre di connessioni "sufficienti" per soddisfare i requisiti della tua applicazione, su un singolo server o tramite un pool/bouncer.

"Abbastanza" è un numero relativo:un'applicazione che crea (e riutilizza continuamente) una connessione richiede solo una connessione. Un'applicazione che stabilisce una connessione per ogni utente finale che effettua l'accesso richiede tante connessioni DB quanti sono gli utenti.

I valori predefiniti sia per Postgres che per pgbouncer sono ragionevoli come predefiniti :

  • 100 connessioni al database sono molte per la persona tipica che lancia Postgres in un ambiente.
    Gli sviluppatori probabilmente non avranno bisogno di più di 10. Chiunque altro saprà abbastanza per aumentare il numero.

  • 20 connessioni da pgbouncer per pool DB significa che puoi ottenere 4 pool che puntano a un server e non superare il limite di connessione Postgres predefinito.
    È possibile avere più risorse in pool in pgbouncer puntando a un database back-end e vuoi sempre alcune connessioni disponibili sui tuoi server back-end.

Se predefinito non sono adatti al tuo ambiente, devi cambiarli.

Ricorda che le connessioni in pool non significa "bloccare sempre ogni connessione al database disponibile".
Il punto di pgbouncer come hai notato è riutilizzare connessioni. Il guadagno di efficienza qui non richiede di legare ogni connessione disponibile, ma semplicemente di non disconnettersi, riconnettersi, rinegoziare SSL, autenticarsi nuovamente al database e rieseguire le query di configurazione della connessione ogni volta.


Linux
  1. Come configurare connessioni remote e sicure per MySQL su Ubuntu 16.04

  2. Come installare e proteggere PostgreSQL Server su RockyLinux 8

  3. Abilita SSL e connessioni remote per MySQL

  4. Come consentire la connessione remota al database PostgreSQL utilizzando psql

  5. Hibernate + MySQL:come impostare la codifica utf-8 per database e tabelle

Come eseguire il backup e il ripristino della scheda SD per Raspberry Pi

Come installare e utilizzare XRDP su Ubuntu per la connessione desktop remoto

Come aggiungere Icinga Director per Icinga2 e Icinga Web 2.

Come installare il database PostgreSQL e pgAdmin su Linux

Come iniziare e installare Wine per Ubuntu

Come installare e configurare il sottosistema Windows per Linux