Este tópico descreve o recurso Performance Agent do AliSQL. Esse recurso coleta estatísticas sobre o desempenho de uma instância do ApsaraDB RDS for MySQL.
Informações de contexto
O Performance Agent adiciona uma tabela de memória chamada PERF_STATISTICS no banco de dados do sistema information_schema. Essa tabela armazena os dados de desempenho gerados no período mais recente. Consulte esses dados diretamente na tabela.
Pré-requisitos
Sua instância RDS deve executar uma das seguintes versões do MySQL e edições do RDS:
MySQL 8.4
MySQL 8.0 com versão secundária do mecanismo 20200229 ou posterior
MySQL 5.7 com versão secundária do mecanismo 20200229 ou posterior
MySQL 5.6 com versão secundária do mecanismo 20200630 ou posterior
Para a manutenção, atualize a versão secundária do mecanismo da sua instância. Consulte Atualizar a versão secundária do mecanismo.
Descrição
A tabela a seguir descreve os parâmetros; configure o recurso Performance Agent conforme necessário.
|
Parâmetro |
Descrição |
|
performance_agent_enabled |
Especifica se o recurso Performance Agent está ativado (ative definindo como ON). Valores válidos: ON e OFF. Valor padrão: ON. |
|
performance_agent_file_size |
O tamanho de um único arquivo local de dados de desempenho. Unidade: MB. |
|
performance_agent_interval |
O intervalo de coleta de dados. Unidade: segundos. Valor padrão: 1. |
|
performance_agent_network_device |
O prefixo do nome da interface de rede física (NIC) do host. |
|
performance_agent_perfstat_volume_size |
A quantidade máxima de registros de dados na tabela |
Esses parâmetros não ficam visíveis no console. Execute o comando SHOW VARIABLES LIKE '<parameter_name>'; para verificar os valores deles.
Esquema
A tabela de memória PERF_STATISTICS usa o seguinte esquema; crie a tabela temporária conforme abaixo:
CREATE TEMPORARY TABLE `PERF_STATISTICS` (
`TIME` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`PROCS_MEM_USAGE` double NOT NULL DEFAULT '0',
`PROCS_MEM_RATIO` double NOT NULL DEFAULT '0',
`PROCS_CPU_RATIO` double NOT NULL DEFAULT '0',
`PROCS_IOPS` double NOT NULL DEFAULT '0',
`PROCS_IOPS_READ` double NOT NULL DEFAULT '0',
`PROCS_IOPS_WRITE` double NOT NULL DEFAULT '0',
`PROCS_IO_READ_BYTES` bigint NOT NULL DEFAULT '0',
`PROCS_IO_WRITE_BYTES` bigint NOT NULL DEFAULT '0',
`MYSQL_CONN_ABORT` int NOT NULL DEFAULT '0',
`MYSQL_CONN_CREATED` int NOT NULL DEFAULT '0',
`MYSQL_USER_CONN_COUNT` int NOT NULL DEFAULT '0',
`MYSQL_CONN_COUNT` int NOT NULL DEFAULT '0',
`MYSQL_CONN_RUNNING` int NOT NULL DEFAULT '0',
`MYSQL_CONNECTIONS` int NOT NULL DEFAULT '0',
`MYSQL_CONN_CACHED` int NOT NULL DEFAULT '0',
`MYSQL_LOCK_IMMEDIATE` int NOT NULL DEFAULT '0',
`MYSQL_LOCK_WAITED` int NOT NULL DEFAULT '0',
`MYSQL_QUESTIONS` int NOT NULL DEFAULT '0',
`MYSQL_COM_INSERT` int NOT NULL DEFAULT '0',
`MYSQL_COM_INSERT_SELECT` int NOT NULL DEFAULT '0',
`MYSQL_COM_REPLACE` int NOT NULL DEFAULT '0',
`MYSQL_COM_REPLACE_SELECT` int NOT NULL DEFAULT '0',
`MYSQL_COM_UPDATE` int NOT NULL DEFAULT '0',
`MYSQL_COM_UPDATE_MULTI` int NOT NULL DEFAULT '0',
`MYSQL_COM_DELETE` int NOT NULL DEFAULT '0',
`MYSQL_COM_DELETE_MULTI` int NOT NULL DEFAULT '0',
`MYSQL_COM_SELECT` int NOT NULL DEFAULT '0',
`MYSQL_COM_COMMIT` int NOT NULL DEFAULT '0',
`MYSQL_COM_ROLLBACK` int NOT NULL DEFAULT '0',
`MYSQL_COM_PREPARE` int NOT NULL DEFAULT '0',
`MYSQL_HANDLER_COMMIT` int NOT NULL DEFAULT '0',
`MYSQL_HANDELR_ROLLBACK` int NOT NULL DEFAULT '0',
`MYSQL_LONG_QUERY` int NOT NULL DEFAULT '0',
`MYSQL_TCACHE_GET` bigint NOT NULL DEFAULT '0',
`MYSQL_TCACHE_MISS` bigint NOT NULL DEFAULT '0',
`MYSQL_TMPFILE_CREATED` int NOT NULL DEFAULT '0',
`MYSQL_TMP_TABLES` int NOT NULL DEFAULT '0',
`MYSQL_TMP_DISKTABLES` int NOT NULL DEFAULT '0',
`MYSQL_SORT_MERGE` int NOT NULL DEFAULT '0',
`MYSQL_SORT_ROWS` int NOT NULL DEFAULT '0',
`MYSQL_BYTES_RECEIVED` bigint NOT NULL DEFAULT '0',
`MYSQL_BYTES_SENT` bigint NOT NULL DEFAULT '0',
`MYSQL_BINLOG_OFFSET` int NOT NULL DEFAULT '0',
`MYSQL_IOLOG_OFFSET` int NOT NULL DEFAULT '0',
`MYSQL_RELAYLOG_OFFSET` int NOT NULL DEFAULT '0',
`EXTRA` json NOT NULL DEFAULT 'null'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Coluna | Descrição |
TIME | O timestamp da coleta de dados. O formato é |
PROCS_MEM_USAGE | Memória física utilizada pelo processo. Unidade: bytes. |
PROCS_MEM_RATIO | Taxa de uso de memória do processo. |
PROCS_CPU_RATIO | Utilização de CPU do processo. |
PROCS_IOPS | Quantidade de chamadas de E/S do sistema. |
PROCS_IOPS_READ | Operações de leitura de E/S por segundo (IOPS) do processo. |
PROCS_IOPS_WRITE | Operações de gravação de E/S por segundo (IOPS) do processo. |
PROCS_IO_READ_BYTES | Volume de dados lidos por operações de E/S. Unidade: bytes. |
PROCS_IO_WRITE_BYTES | Volume de dados gravados por operações de E/S. Unidade: bytes. |
MYSQL_CONN_ABORT | Total de conexões abortadas. |
MYSQL_CONN_CREATED | Total de conexões criadas. |
MYSQL_USER_CONN_COUNT | Total de conexões de usuário ativas. |
MYSQL_CONN_COUNT | Total geral de conexões. |
MYSQL_CONN_RUNNING | Quantidade de conexões ativas no momento. |
MYSQL_CONNECTIONS | Quantidade de tentativas de conexão com o servidor MySQL. |
MYSQL_CONN_CACHED | Quantidade de threads no cache de threads. |
MYSQL_LOCK_IMMEDIATE | Quantidade de bloqueios de tabela adquiridos imediatamente. |
MYSQL_LOCK_WAITED | Quantidade de bloqueios de tabela que exigiram espera. |
MYSQL_QUESTIONS | Total de instruções executadas pelo servidor. |
MYSQL_COM_INSERT | Total de instruções |
MYSQL_COM_INSERT_SELECT | Total de instruções |
MYSQL_COM_REPLACE | Total de instruções |
MYSQL_COM_REPLACE_SELECT | Total de instruções |
MYSQL_COM_UPDATE | Total de instruções |
MYSQL_COM_UPDATE_MULTI | Total de instruções |
MYSQL_COM_DELETE | Total de instruções |
MYSQL_COM_DELETE_MULTI | Total de instruções |
MYSQL_COM_SELECT | Total de instruções |
MYSQL_COM_COMMIT | Total de instruções |
MYSQL_COM_ROLLBACK | Total de instruções |
MYSQL_COM_PREPARE | Total de instruções preparadas. |
MYSQL_HANDLER_COMMIT | Total de instruções |
MYSQL_HANDELR_ROLLBACK | Quantidade de solicitações para executar uma operação de rollback dentro de um mecanismo de armazenamento. |
MYSQL_LONG_QUERY | Quantidade de consultas lentas. |
MYSQL_TCACHE_GET | Quantidade de acertos no cache de abertura de tabelas. |
MYSQL_TCACHE_MISS | Quantidade de falhas no cache de abertura de tabelas. |
MYSQL_TMPFILE_CREATED | Total de arquivos temporários criados. |
MYSQL_TMP_TABLES | Total de tabelas temporárias internas em memória criadas. |
MYSQL_TMP_DISKTABLES | Total de tabelas temporárias internas em disco criadas. |
MYSQL_SORT_MERGE | Quantidade de passagens de mesclagem para classificação. |
MYSQL_SORT_ROWS | Quantidade de linhas classificadas. |
MYSQL_BYTES_RECEIVED | Volume de bytes recebidos de todos os clientes. Unidade: bytes. |
MYSQL_BYTES_SENT | Volume de bytes enviados para todos os clientes. Unidade: bytes. |
MYSQL_BINLOG_OFFSET | Tamanho dos arquivos de log binário gerados. Unidade: bytes. |
MYSQL_IOLOG_OFFSET | Tamanho dos arquivos de log binário enviados pela instância source. Unidade: bytes. |
MYSQL_RELAYLOG_OFFSET | Tamanho dos arquivos de relay log aplicados pela instância réplica. Unidade: bytes. |
EXTRA | Estatísticas do InnoDB no formato JSON. Para obter detalhes sobre esses campos, consulte a tabela de descrições dos campos EXTRA abaixo. Nota As métricas das estatísticas do InnoDB são idênticas aos valores retornados pelo comando |
Tabela 1. Descrições dos campos EXTRA
|
Campo |
Descrição |
|
INNODB_TRX_CNT |
Total de transações. |
|
INNODB_DATA_READ |
Volume de dados lidos. Unidade: bytes. |
|
INNODB_IBUF_SIZE |
Tamanho do buffer de inserção, em páginas. |
|
INNODB_LOG_WAITS |
Quantidade de esperas para gravações de log. |
|
INNODB_MAX_PURGE |
Total de transações purgadas. |
|
INNODB_N_WAITING |
Quantidade de esperas de bloqueio. |
|
INNODB_ROWS_READ |
Total de linhas lidas. |
|
INNODB_LOG_WRITES |
Total de gravações de log. |
|
INNODB_IBUF_MERGES |
Quantidade de mesclagens do buffer de inserção. |
|
INNODB_DATA_WRITTEN |
Volume de dados gravados. Unidade: bytes. |
|
INNODB_DBLWR_WRITES |
Quantidade de operações de doublewrite. |
|
INNODB_IBUF_SEGSIZE |
Tamanho atual do buffer de inserção. |
|
INNODB_ROWS_DELETED |
Total de linhas excluídas (exclua registros se necessário). |
|
INNODB_ROWS_UPDATED |
Total de linhas atualizadas. |
|
INNODB_COMMIT_TRXCNT |
Total de transações confirmadas. |
|
INNODB_IBUF_FREELIST |
Comprimento da lista livre. |
|
INNODB_MYSQL_TRX_CNT |
Total de transações do MySQL. |
|
INNODB_ROWS_INSERTED |
Total de linhas inseridas. |
|
INNODB_ACTIVE_TRX_CNT |
Total de transações ativas. |
|
INNODB_OS_LOG_WRITTEN |
Volume de dados gravados nos arquivos de log. Unidade: bytes. |
|
INNODB_ACTIVE_VIEW_CNT |
Total de visões ativas. |
|
INNODB_RSEG_HISTORY_LEN |
Comprimento da lista de histórico no segmento de rollback. |
|
INNODB_AVG_COMMIT_TRXTIME |
Tempo médio de confirmação de transação. |
|
INNODB_MAX_COMMIT_TRXTIME |
Tempo máximo de confirmação de transação. |
|
INNODB_DBLWR_PAGES_WRITTEN |
Quantidade de páginas gravadas por operações de doublewrite. |
Uso do Performance Agent
-
Consulte a tabela do sistema diretamente e selecione os dados de desempenho. Por exemplo:
-
Para consultar a utilização de CPU e o uso de memória nos últimos 30 segundos:
MySQL> select TIME, PROCS_MEM_USAGE, PROCS_CPU_RATIO from information_schema.PERF_STATISTICS order by time DESC limit 30; +---------------------+-----------------+-----------------+ | TIME | PROCS_MEM_USAGE | PROCS_CPU_RATIO | +---------------------+-----------------+-----------------+ | 2020-02-27 11:15:36 | 857812992 | 18.55 | | 2020-02-27 11:15:35 | 857808896 | 18.54 | | 2020-02-27 11:15:34 | 857268224 | 19.64 | | 2020-02-27 11:15:33 | 857268224 | 21.06 | | 2020-02-27 11:15:32 | 857264128 | 20.39 | | 2020-02-27 11:15:31 | 857272320 | 20.32 | | 2020-02-27 11:15:30 | 857272320 | 21.35 | | 2020-02-27 11:15:29 | 857272320 | 28.8 | | 2020-02-27 11:15:28 | 857268224 | 29.08 | | 2020-02-27 11:15:27 | 857268224 | 26.92 | | 2020-02-27 11:15:26 | 857268224 | 23.84 | | 2020-02-27 11:15:25 | 857264128 | 13.76 | | 2020-02-27 11:15:24 | 857264128 | 15.12 | | 2020-02-27 11:15:23 | 857264128 | 14.76 | | 2020-02-27 11:15:22 | 857264128 | 15.38 | | 2020-02-27 11:15:21 | 857260032 | 13.23 | | 2020-02-27 11:15:20 | 857260032 | 12.75 | | 2020-02-27 11:15:19 | 857260032 | 12.17 | | 2020-02-27 11:15:18 | 857255936 | 13.22 | | 2020-02-27 11:15:17 | 857255936 | 20.51 | | 2020-02-27 11:15:16 | 857255936 | 28.74 | | 2020-02-27 11:15:15 | 857251840 | 29.85 | | 2020-02-27 11:15:14 | 857251840 | 29.31 | | 2020-02-27 11:15:13 | 856981504 | 28.85 | | 2020-02-27 11:15:12 | 856981504 | 29.19 | | 2020-02-27 11:15:11 | 856977408 | 29.12 | | 2020-02-27 11:15:10 | 856977408 | 29.32 | | 2020-02-27 11:15:09 | 856977408 | 29.2 | | 2020-02-27 11:15:08 | 856973312 | 29.36 | | 2020-02-27 11:15:07 | 856973312 | 28.79 | +---------------------+-----------------+-----------------+ 30 rows in set (0.08 sec) -
Para consultar a quantidade de linhas lidas e inseridas no InnoDB nos últimos 30 segundos:
MySQL> select TIME, EXTRA->'$.INNODB_ROWS_READ', EXTRA->'$.INNODB_ROWS_INSERTED' from information_schema.PERF_STATISTICS order by time DESC limit 30; +---------------------+-----------------------------+---------------------------------+ | TIME | EXTRA->'$.INNODB_ROWS_READ' | EXTRA->'$.INNODB_ROWS_INSERTED' | +---------------------+-----------------------------+---------------------------------+ | 2020-02-27 11:22:17 | 39209 | 0 | | 2020-02-27 11:22:16 | 36098 | 0 | | 2020-02-27 11:22:15 | 38035 | 0 | | 2020-02-27 11:22:14 | 37384 | 0 | | 2020-02-27 11:22:13 | 38336 | 0 | | 2020-02-27 11:22:12 | 33946 | 0 | | 2020-02-27 11:22:11 | 36301 | 0 | | 2020-02-27 11:22:10 | 36835 | 0 | | 2020-02-27 11:22:09 | 36900 | 0 | | 2020-02-27 11:22:08 | 36402 | 0 | | 2020-02-27 11:22:07 | 39672 | 0 | | 2020-02-27 11:22:06 | 39316 | 0 | | 2020-02-27 11:22:05 | 37830 | 0 | | 2020-02-27 11:22:04 | 36396 | 0 | | 2020-02-27 11:22:03 | 34820 | 0 | | 2020-02-27 11:22:02 | 37350 | 0 | | 2020-02-27 11:22:01 | 39463 | 0 | | 2020-02-27 11:22:00 | 38419 | 0 | | 2020-02-27 11:21:59 | 37673 | 0 | | 2020-02-27 11:21:58 | 35117 | 0 | | 2020-02-27 11:21:57 | 36140 | 0 | | 2020-02-27 11:21:56 | 37592 | 0 | | 2020-02-27 11:21:55 | 39765 | 0 | | 2020-02-27 11:21:54 | 35553 | 0 | | 2020-02-27 11:21:53 | 35882 | 0 | | 2020-02-27 11:21:52 | 37061 | 0 | | 2020-02-27 11:21:51 | 40699 | 0 | | 2020-02-27 11:21:50 | 39608 | 0 | | 2020-02-27 11:21:49 | 39317 | 0 | | 2020-02-27 11:21:48 | 37413 | 0 | +---------------------+-----------------------------+---------------------------------+ 30 rows in set (0.08 sec)
-
Conecte-se a uma plataforma de monitoramento, como o Grafana, para monitorar o desempenho em tempo real.
