Salta al contenuto

Come posso monitorare i pool di connessioni proxy di Amazon RDS e ottimizzare le connessioni al database?

5 minuti di lettura
0

Desidero monitorare i pool di connessioni proxy di Amazon Relational Database Services (Amazon RDS) e ottimizzare le mie connessioni al database.

Risoluzione

Monitora le metriche del Server proxy RDS e il database RDS di destinazione

Completa i seguenti passaggi:

  1. Apri la console Amazon CloudWatch.
  2. Nel pannello di navigazione, scegli Metriche, quindi seleziona Tutte le metriche.
  3. Nella scheda Sfoglia, scegli RDS e Metriche per proxy.
  4. Cerca le seguenti metriche:
    ClientConnections per il numero di connessioni in entrata dall'applicazione.
    MaxDatabaseConnectionsAllowed per il numero massimo di connessioni al database consentite dal proxy RDS.
    DatabaseConnections per il numero corrente di connessioni che il Server proxy RDS stabilisce al database di destinazione.
  5. Nella scheda Sfoglia, scegli RDS e DBInstanceIdentifier.
  6. Cerca la metrica DatabaseConnections per ottenere il numero totale di connessioni stabilite dal Server proxy RDS al database di destinazione e tutte le altre connessioni al database di destinazione.

È consigliabile esaminare queste metriche con una granularità di 1 minuto e utilizzare la statistica Sum per maggiori dettagli sui modelli di utilizzo della connessione.

Rivedi gli eventi del log del Server proxy RDS

Modifica il proxy RDS per attivare Registrazione avanzata in modo da poter ottenere dettagli avanzati, come le connessioni che si aprono o si chiudono. Puoi anche ottenere dettagli per le operazioni interne, come il pinning e il prestito.

Nota: la registrazione avanzata si disattiva automaticamente dopo 24 ore.

Per esaminare gli eventi del log del Server proxy RDS, completa i passaggi seguenti:

  1. Apri la console CloudWatch.
  2. Nel pannello di navigazione, scegli Log, quindi scegli Gruppi di log.
  3. Seleziona il gruppo di log per il proxy /aws/rds/proxy/.
  4. Nella scheda Flussi di log, seleziona il flusso di log per visualizzare gli eventi del log.

Esegui query in CloudWatch Logs Insights per rilevare le anomalie

Per accedere all'editor di query in CloudWatch Logs Insights, completa i seguenti passaggi:

  1. Apri la console CloudWatch.
  2. Nel pannello di navigazione, scegli Log, quindi seleziona Logs Insights.

Utilizza l'editor di query per eseguire queste query. In ogni query, sostituisci prx-000##### con l'ID del tuo proxy.

Per ottenere errori o avvisi, esegui questa query:

fields @timestamp, @message  
| sort @timestamp asc  
| filter @logStream like 'prx-000#####'  
| filter @message like / ERROR: / or @message like / WARN: /

Per determinare il motivo della chiusura della connessione client, esegui questa query:

fields @message  
| sort @timestamp asc  
| filter @logStream like 'prx-000#####'  
| filter @message like /The client connection closed/ and @message like /CUSTOMER/  
| parse 'Reason: *' as reason  
| stats count() as reasonCount by reason  
| sort by reasonCount desc  
| limit 20

Per determinare il motivo della chiusura della connessione al database, esegui questa query:

fields @message  
| sort @timestamp asc  
| filter @logStream like 'prx-000xxxxx'  
| filter @message like /The database connection closed/ and @message like /CUSTOMER/  
| parse 'Reason: *' as reason  
| stats count() as reasonCount by reason  
| sort by reasonCount desc  
| limit 20

Modifica le impostazioni di connessione del Server proxy RDS

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

MaxConnectionsPercent

Se il database ha raggiunto la percentuale massima impostata per le connessioni, ricevi il seguente messaggio di errore:

"The database connection closed. Reason: The pool reached the maximum connection setting, and a connection with different properties was required."

Per risolvere il problema, monitora le metriche di CloudWatch DatabaseConnections e MaxDatabaseConnectionsAllowed. Se DatabaseConnections raggiunge MaxDatabaseConnectionsAllowed, limita il traffico in entrata. Oppure esegui il comando AWS CLI modify-db-proxy-target-group o l'operazione API ModifyDBProxyTargetGroup per aumentare l'impostazione MaxConnectionsPercent. Imposta il valore MaxConnectionsPercent in modo che sia superiore almeno del 30% all'utilizzo monitorato massimo recente.

MaxIdleConnectionsPercent

Se le connessioni inattive nel pool sono troppe, ricevi il seguente messaggio:

"The database connection closed. Reason: There were too many idle connections in the connection pool. A new slot in the connection pool is now available."

Per risolvere il problema, monitora le metriche di CloudWatch ClientConnections e DatabaseConnections. Se ClientConnections è sempre inferiore a DatabaseConnections, sono presenti connessioni inattive al database di destinazione. Per impostazione predefinita, il valore MaxIdleConnectionsPercent è pari al 50% del valore MaxConnectionsPercent. Per modificare MaxIdleConnectionsPercent, esegui il comando AWS CLI modify-db-proxy-target-group o l'operazione API ModifyDBProxyTargetGroup. Mantieni aperta un'alta percentuale di connessioni al database inattive. Utilizza valori inferiori per carichi di lavoro coerenti al fine di evitare l'utilizzo di risorse inattive.

IdleClientTimeout

Se il database supera il timeout di inattività della connessione client, ricevi il seguente messaggio:

"The client connection closed. Reason: The idle timeout was exceeded."

Per rimuovere le connessioni inattive, riduci IdleClientTimeout. Se il carico di lavoro stabilisce connessioni frequenti con il proxy, aumenta IdleClientTimeout in modo da non dover stabilire connessioni. Per modificare IdleClientTimeout, esegui il comando AWS CLI modify-db-proxy o l'operazione API ModifyDBProxy.

ConnectionBorrowTimeout

Se si verifica un errore di timeout, il Server proxy RDS non è in grado di stabilire una connessione al database.

Per impostare ConnectionBorrowTimeout su un valore inferiore al valore di timeout della connessione, esegui il comando AWS CLI modify-db-proxy-target-group o l'operazione API ModifyDBProxyTargetGroup.

Chiudi manualmente le connessioni aperte

Se una connessione al database è inattiva per più di 24 ore, ricevi il seguente messaggio di errore:

"The database connection closed. Reason: The idle connection exceeded the maximum connection duration."

Non puoi modificare la durata massima di una connessione al database inattiva nel Server proxy RDS. È invece consigliabile chiudere manualmente le connessioni che l'applicazione non ha bisogno di riutilizzare.

Informazioni correlate

Concetti e terminologia RDS Proxy

Monitoraggio dei parametri del Server proxy RDS con Amazon CloudWatch