DataSunrise Consegue la Certificazione AWS DevOps Competency per AWS DevSecOps e Monitoraggio, Logging e Performance

Ottimizzare il Pooling delle Connessioni con PgBouncer

Ottimizzare il Pooling delle Connessioni con PgBouncer

La maggior parte delle applicazioni web utilizza database per memorizzare i propri dati. Le applicazioni client possono recuperare le informazioni dal database stabilendo una connessione ad esso. Ogni query consuma risorse tra cui memoria, assegnazione di porte e tempo della CPU. Una transazione può richiedere millisecondi, ma stabilire una connessione può richiedere fino a diversi secondi.

Per semplificare il processo di connessione a PostgreSQL, specialmente quando è previsto un alto volume di connessioni client, può utilizzare PgBouncer per gestire efficacemente le connessioni tra client e database. È un popolare collettore di connessioni che si collega al database una volta e utilizza questa connessione molte volte per diversi client. Questo non è l’unico vantaggio di utilizzare PgBouncer.

Supponiamo che Lei abbia 100 client che devono connettersi al Suo database e non vuole condividere la password dell’utente del database tra questi client. In questo caso, può utilizzare PgBouncer. Può impostare login e password individuali per la connessione in modo che PgBouncer e i client non utilizzino le password degli utenti del database. Inoltre, può assegnare un nome alias al database, in modo che i client non vedano il nome reale del database.

Invece di creare una connessione al database, viene creata una connessione con PgBouncer che utilizza già connessioni esistenti del database.

DataSunrise Database Security Suite insieme a molte altre funzionalità supporta il pooling con PgBouncer. Lavorando efficacemente con la mappatura tra client e database, mantiene una sicurezza del database completa quando PgBouncer è in esecuzione.

Vantaggi dell’utilizzo dei pool di connessioni di PgBouncer:

  • riduzione del tempo di elaborazione
  • riduzione del consumo di risorse del server per mantenere un grande numero di connessioni del server a uno o più database
  • supporto del riavvio o dell’aggiornamento in linea senza interrompere le connessioni client
  • nascondimento del nome reale del database
  • la possibilità di evitare la condivisione della password dell’utente del database con tutte le applicazioni client

Configurazione di PgBouncer

Dopo l’installazione, PgBouncer funziona come un servizio su Windows e come un demone su Linux (denominato come pgbouncer in entrambi i casi).

Per modificare le impostazioni di configurazione, trova il file pgbouncer.ini nella seguente directory: pgbouncer/share. Contiene i seguenti parametri:

 [database] sezionePuò aggiungere database, definire i loro host, porte, assegnare nomi alias ai database e specificare un login e una password dell’utente del database (tutti i client connessi al nome alias specificato tramite PgBouncer utilizzeranno il login e la password dell’utente del database specificati in questa sezione).
 [pgbouncer] sezioneSpecifica gli indirizzi IP che verranno ascoltati dal demone PgBouncer. Usa Listen_addr = *  per ascoltare tutti gli indirizzi disponibili.
 auth_filePgBouncer non è parte di PostgreSQL, quindi deve fornire l’elenco degli utenti con password crittografate necessarie per connettersi a PgBouncer.  Auth_file è un percorso di directory al file che contiene nomi utente e password.
 auth_type(md5 | crypt | plain | trust | any) Md5 è un argomento per l’utilizzo delle password specificate nel auth_file. Md5 è impostato come predefinito.
 max_client_connIl numero massimo di client che possono connettersi al pool (100, per impostazione predefinita).
 admin_usersAssegnare privilegi con accesso alla console di amministrazione.
 default_pool_size Assegnare il numero massimo di connessioni server per ogni combinazione utente/database.
 reserve_pool_sizeIl numero massimo di connessioni aggiuntive consentite in caso di qualsiasi problema.
 pool_modeDefinisce la modalità di pooling: (session) PgBouncer assegna una connessione server al client. Quando l’applicazione client si disconnette, la connessione viene rilasciata nel pool. (transaction) PgBouncer assegna una connessione server all’applicazione client fino a quando la transazione non è completata. (statement) PgBouncer assegna una connessione server per ogni istruzione dell’applicazione client.

Come può vedere, PgBouncer fornisce una soluzione semplice per gestire i pool di connessioni, specialmente quando si affronta un’architettura multithread. Utilizzando le connessioni esistenti, PgBouncer elimina la necessità di creare una connessione al database per ogni client.

I nostri sviluppatori hanno analizzato attentamente gli schemi di mappatura di PgBouncer e hanno configurato DataSunrise Database Security Suite per funzionare a pieno insieme a questo collettore di connessioni.

Successivo

Si Aiuti con un Po’ di Sicurezza dei Database nel Cloud

Si Aiuti con un Po’ di Sicurezza dei Database nel Cloud

Scopri di più

Ha bisogno del nostro team di supporto?

I nostri esperti saranno lieti di rispondere alle Sue domande.

Informazioni generali:
[email protected]
Servizio clienti e supporto tecnico:
support.datasunrise.com
Richieste di collaborazione e alleanza:
[email protected]