Analisi degli alberi di blocco per Amazon Aurora PostgreSQL con CloudWatch Database Insights
Per risolvere i problemi di prestazioni causati dai blocchi, puoi analizzare gli alberi di blocco per i database Amazon Aurora PostgreSQL con CloudWatch Database Insights utilizzando quanto segue.
Menu a discesa Suddiviso per: scegli le dimensioni Oggetto bloccante, Sessione bloccante o SQL bloccante nel grafico del Carico del database per vedere come ciascuno dei principali errori bloccanti contribuisce al carico DB nel tempo. Grazie al grafico del carico del database puoi analizzare se i principali errori bloccanti sono costanti o se variano spesso. Ciò ti permette di risolvere i problemi relativi ai blocchi.
Scheda Analisi dei blocchi: scegli Analisi del carico DB, quindi scegli la scheda Analisi dei blocchi per visualizzare le informazioni sulla contesa dei blocchi nel tuo database.
Nota
CloudWatch Database Insights supporta l'analisi dei blocchi per tutte le versioni di Aurora PostgreSQL. Per analizzare gli alberi di blocco, è necessario che sia abilitata la modalità avanzata di Database Insights. Per informazioni su come attivare la modalità avanzata, consulta Turning on the Advanced mode of Database Insights for Amazon Aurora e Turning on the Advanced mode of Database Insights for Amazon Relational Database Service
La scheda di analisi dei blocchi fornisce informazioni sulla contesa dei blocchi per il database. La visualizzazione ad albero dei blocchi mostra le relazioni e le dipendenze tra le richieste di blocco provenienti da sessioni diverse.
Database Insights acquisisce snapshot ogni 15 secondi. Gli snapshot mostrano i dati di blocco del database in un determinato momento.
Nota
Quando CloudWatch rileva un blocco elevato, CloudWatch visualizza il banner Blocco elevato rilevato per la scheda Analisi dei blocchi. CloudWatch rileva un blocco elevato se acquisisce uno snapshot del blocco per ogni intervallo di 15 secondi per 15 minuti consecutivi.
Ogni nodo dell'albero rappresenta una sessione specifica. Il nodo principale è una sessione che blocca i relativi nodi secondari.
Per analizzare gli alberi di blocco, attieniti alla procedura seguente.
Per analizzare gli alberi di blocco
Accedi alla Console di gestione AWS e apri la console CloudWatch all'indirizzo https://console.aws.amazon.com/cloudwatch/
. Scegli Approfondimenti.
Scegli Approfondimenti sul database.
Scegli la visualizzazione Istanza database.
Scegli un'istanza database.
Scegli la scheda Analisi del carico DB.
Scegli la scheda Analisi dei blocchi.
Per visualizzare i dati di blocco per un'istanza DB, scegli un periodo di un giorno o meno.
Scegli una finestra di snapshot. Per impostazione predefinita, Database Insights sceglie la finestra di snapshot con le sessioni maggiormente bloccate.
Per visualizzare i dati di blocco per uno snapshot, scegli l'ora in cui Database Insights ha scattato lo snapshot.
Per espandere un albero di blocco, scegli la freccia accanto all'ID della sessione.
Dati dello snapshot di blocco
Database Insights fornisce le seguenti informazioni per ogni richiesta di blocco. Per visualizzare le colonne che non sono abilitate per impostazione predefinita, scegli l'icona Impostazioni per la tabella Alberi di blocco e abilita le altre colonne.
| Nome colonna | Definizione | Colonna predefinita | Note |
|---|---|---|---|
|
|
L'identificativo di sessione univoco. |
Sì |
Il |
|
|
Il PID di questo backend. |
Sì |
|
|
|
Il numero di sessioni bloccate da questo blocco. |
Sì |
Il |
|
|
L'ultima query eseguita da questa sessione. Per gli errori bloccanti, potrebbe non essere la query a contenere il blocco che determina il blocco. |
Sì |
|
|
|
Il nome dell'evento di attesa se il backend è attualmente in attesa, altrimenti il valore è NULL. |
Sì |
|
|
|
Il tempo (in secondi) dall'inizio di questo blocco. |
Sì |
Il |
|
|
La modalità di blocco mantenuta dalla sessione di blocco. |
No |
|
|
|
La modalità di blocco richiesta dalla sessione di attesa. |
No |
|
|
|
Il nome dell'applicazione connessa a questo backend. |
No |
|
|
|
L'ora di inizio della transazione di blocco oppure null se nessuna transazione è attiva. |
No |
|
|
|
L'ora in cui una sessione utente in attesa ha iniziato ad attendere questo blocco, oppure null se il blocco è mantenuto. |
No |
|
|
|
L'ora in cui una sessione utente è iniziata. |
No |
|
|
|
Lo stato di un backend. |
No |
|
|
|
Il tipo di evento di attesa per il quale questa sessione è in attesa. |
No |
|
|
|
L'ora in cui è stata avviata l'ultima query. |
No |
|
|
|
Il nome dell'utente che ha effettuato l'accesso a questo backend. |
No |
|
|
|
Il nome host del client connesso, come riportato da una ricerca DNS inversa di |
No |
|
|
|
Il numero di porta TCP utilizzato dal client per la comunicazione con questo backend, oppure |
No |
|
|
|
L'indirizzo IP del client connesso a questo backend. Se questo campo è null, indica che il client è connesso tramite un socket Unix sulla macchina server o che si tratta di un processo interno come autovacuum. |
No |
|
|
|
Il valore è true se il blocco è mantenuto e false se il blocco è atteso. |
No |
|
|
|
Il numero di tupla indicato dal blocco all'interno della pagina oppure null se la destinazione non è una tupla. |
No |
|
|
|
Il numero di pagina indicato dal blocco all'interno della relazione oppure null se la destinazione non è una pagina o una tupla di relazione. |
No |
|
|
|
L'ID della transazione oggetto del blocco oppure null se la destinazione non è un ID di transazione. |
No |
|
|
|
L'OID della relazione sulla quale è applicato il blocco oppure null se la destinazione non è una relazione o parte di una relazione. |
No |
|
|
|
L'OID della destinazione del blocco all'interno del relativo catalogo di sistema oppure null se la destinazione non è un oggetto di database generale. |
No |
|
|
|
L'OID del database in cui esiste la destinazione del blocco, oppure zero se la destinazione è un oggetto condiviso, oppure null se la destinazione è un ID di transazione. |
No |
|
|
|
Il nome del database in cui è presente la destinazione del blocco. |
No |
|
|
|
Il tipo di oggetto bloccabile: relation, extend, frozenid, page, tuple, transactionid, virtualxid, spectoken, object, userlock, advisory o applytransaction. |
No |
|
|
|
Il valore è true se il blocco è stato preso con il percorso veloce e false se preso dalla tabella di blocco principale. |
No |
|
Per ulteriori informazioni sui valori nelle viste pg_stat_activity e pg_locks, consulta i seguenti argomenti nella documentazione di PostgreSQL.