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

Ottimizzazione del Connection Pooling con PgBouncer

Ottimizzazione del Connection Pooling 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, inclusa 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, soprattutto quando si prevede un volume elevato di connessioni client, è possibile utilizzare PgBouncer per gestire efficacemente le connessioni client-database. È un famoso connection pooler che si connette al database una volta e utilizza questa connessione molte volte per diversi client. Non è l’unico vantaggio dell’utilizzo di PgBouncer.

Supponiamo che Lei abbia 100 client che necessitano di connettersi al Suo database e Lei non voglia condividere la password dell’utente del database con questi client. In questo caso, può utilizzare PgBouncer. Può impostare login e password individuali per connettere in modo che PgBouncer e i client non utilizzino le password dell’utente 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à le connessioni al database esistenti.

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

Vantaggi dell’utilizzo dei pool di connessioni PgBouncer:

  • riduzione del tempo di elaborazione
  • riduzione del consumo di risorse del server per il mantenimento di un gran numero di connessioni server a uno o più database
  • supporto del riavvio o aggiornamento online senza interruzione delle connessioni client
  • nascondere il nome reale del database
  • 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 (chiamato 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 per l’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] sezioneSpecificare gli indirizzi IP che saranno ascoltati dal demone PgBouncer. Usare il Listen_addr = * per ascoltare tutti gli indirizzi disponibili.
auth_filePgBouncer non è parte di PostgreSQL, quindi è necessario fornire l’elenco degli utenti con password criptate richiesti per connettersi a PgBouncer. Auth_file è il percorso della directory al file contenente 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 di default.
max_client_connLa quantità massima di client che possono connettersi al pool (100, di default).
admin_usersAssegnare privilegi di accesso alla console amministrativa.
default_pool_sizeAssegnare il numero massimo di connessioni server per ogni combinazione utente/database.
reserve_pool_sizeIl numero massimo di connessioni aggiuntive consentite in caso si verifichino problemi.
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 alla fine della transazione. (statement) PgBouncer assegna una connessione server per ogni dichiarazione dell’applicazione client.

Come può vedere, PgBouncer fornisce una soluzione semplice per la gestione dei pool di connessioni, specialmente quando si ha a che fare con architetture multi-thread. Utilizzando connessioni già esistenti, PgBouncer elimina la necessità di creare una connessione al database per ogni client.

I nostri sviluppatori hanno analizzato a fondo gli schemi di mappatura di PgBouncer e hanno configurato DataSunrise Database Security Suite per fornire funzionalità complete insieme a questo connection pooler.

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]