Come posso visualizzare l'attività del server per un'istanza database Amazon RDS per MySQL?

2 minuti di lettura
0

Come posso visualizzare l'attività del server per un'istanza database di Amazon Relational Database Service (Amazon RDS) che esegue MySQL?

Soluzione

È possibile utilizzare l'attività del server per identificare l'origine dei problemi di prestazioni. È possibile esaminare lo stato del motore di archiviazione InnoDB, identificare le query in esecuzione o trovare i deadlock sull'istanza database.

Devi disporre dei privilegi di amministrazione PROCESS del server MySQL per visualizzare tutti i thread in esecuzione su un'istanza database MySQL. Se non disponi dei privilegi di amministratore, il comando SHOW PROCESSLIST mostra solo i thread associati all'account MySQL che stai utilizzando. Inoltre devi disporre dei privilegi di amministratore MySQL PROCESS per utilizzare il comando SHOW ENGINE. I privilegi di amministratore MYSQL PROCESS sono necessari anche per visualizzare le informazioni sullo stato del motore di archiviazione InnoDB.

Per visualizzare l'attività del server per un'istanza database, segui questi passaggi:

1.    Attiva il log delle query generale e il log delle query lente per l’istanza database MySQL.

2.    Connettiti all'istanza database su cui è in esecuzione il motore di database MySQL.

3.    Esegui questi comandi:

SHOW FULL PROCESSLIST\G
SHOW ENGINE INNODB STATUS\G

Nota: Per visualizzare più dei primi 100 caratteri di ogni istruzione, usa la parola chiave FULL.

4.    Controlla quali transazioni sono in attesa e quali transazioni stanno bloccando le transazioni in attesa. Esegui uno di questi comandi a seconda della versione di Amazon RDS per MySQL in esecuzione:

Per le versioni 5.6 e 5.7:

SELECT r.trx_id waiting_trx_id, r.trx_mysql_thread_id waiting_thread, r.trx_query waiting_query, b.trx_id blocking_trx_id, b.trx_mysql_thread_id blocking_thread, b.trx_query blocking_query FROM information_schema.innodb_lock_waits w INNER JOIN information_schema.innodb_trx b ON b.trx_id = w.blocking_trx_id INNER JOIN information_schema.innodb_trx r ON r.trx_id = w.requesting_trx_id;

Per la versione 8.0

ON r.trx_id = w.requesting_engine_transaction_id;INNER JOIN information_schema.innodb_trx r
ON b.trx_id = w.blocking_engine_transaction_id
INNER JOIN information_schema.innodb_trx b
FROM performance_schema.data_lock_waits w
b.trx_query blocking_query
b.trx_mysql_thread_id blocking_thread,
b.trx_id blocking_trx_id,
r.trx_query waiting_query,
r.trx_mysql_thread_id waiting_thread,
r.trx_id waiting_trx_id,

Nota: È consigliabile raccogliere questi output a intervalli brevi e consecutivi (ad esempio 60 secondi). L’esame di più output può offrire una visione più ampia dello stato del motore. Questo consente di risolvere i problemi relativi alle prestazioni.


Informazioni correlate

Monitoraggio di parametri in un'istanza Amazon RDS