Todos os produtos
Search
Central de documentação

PolarDB:Performance Agent

Última atualização: Jun 28, 2026

O Performance Agent é um plug-in do PolarDB for MySQL que grava estatísticas de desempenho no nível do nó em uma tabela na memória, com intervalo configurável. Consulte essa tabela diretamente via SQL ou integre-a a uma plataforma de monitoramento como o Grafana para acompanhar métricas de CPU, memória, I/O, conexões e do mecanismo InnoDB em tempo real.

Pré-requisitos

Antes de começar, verifique se você possui:

Como funciona

O Performance Agent coleta dados de desempenho em um intervalo configurável e grava cada snapshot como uma linha na tabela de memória PERF_STATISTICS, localizada no banco de dados de sistema performance_schema. Essa tabela armazena os dados de desempenho gerados durante o período mais recente.

Nota

Ativar o performance_schema permite monitorar locks, transações e métricas de memória, mas consome uma quantidade significativa de memória do sistema e pode afetar o desempenho do cluster. Ele vem desativado por padrão no PolarDB for MySQL. Caso decida ativá-lo, configure apenas as métricas necessárias, considerando as especificações do seu cluster e os recursos disponíveis.

Parâmetros

Parâmetro

Descrição

Padrão

performance_agent_enabled

Ativa ou desativa o Performance Agent. Valores válidos: ON, OFF.

ON

performance_agent_interval

Frequência de coleta de dados pelo Performance Agent. Valores válidos: 1–60. Unidade: segundos.

1

performance_agent_perfstat_volume_size

Número máximo de linhas na tabela PERF_STATISTICS.

3600

Com os valores padrão (interval = 1, volume_size = 3600), a tabela retém aproximadamente uma hora de dados.

Para modificar esses parâmetros, consulte Especificar parâmetros de cluster e nó.

Tabela PERF_STATISTICS

Schema

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_CPU_RATIO` double NOT NULL DEFAULT '0',
  `PROCS_IOPS` double NOT NULL DEFAULT '0',
  `PROCS_IO_READ_BYTES` bigint(21) NOT NULL DEFAULT '0',
  `PROCS_IO_WRITE_BYTES` bigint(21) NOT NULL DEFAULT '0',
  `MYSQL_CONN_ABORT` int(11) NOT NULL DEFAULT '0',
  `MYSQL_CONN_CREATED` int(11) NOT NULL DEFAULT '0',
  `MYSQL_USER_CONN_COUNT` int(11) NOT NULL DEFAULT '0',
  `MYSQL_CONN_RUNNING` int(11) NOT NULL DEFAULT '0',
  `MYSQL_LOCK_IMMEDIATE` int(11) NOT NULL DEFAULT '0',
  `MYSQL_LOCK_WAITED` int(11) NOT NULL DEFAULT '0',
  `MYSQL_COM_INSERT` int(11) NOT NULL DEFAULT '0',
  `MYSQL_COM_UPDATE` int(11) NOT NULL DEFAULT '0',
  `MYSQL_COM_DELETE` int(11) NOT NULL DEFAULT '0',
  `MYSQL_COM_SELECT` int(11) NOT NULL DEFAULT '0',
  `MYSQL_COM_COMMIT` int(11) NOT NULL DEFAULT '0',
  `MYSQL_COM_ROLLBACK` int(11) NOT NULL DEFAULT '0',
  `MYSQL_COM_PREPARE` int(11) NOT NULL DEFAULT '0',
  `MYSQL_LONG_QUERY` int(11) NOT NULL DEFAULT '0',
  `MYSQL_TCACHE_GET` bigint(21) NOT NULL DEFAULT '0',
  `MYSQL_TCACHE_MISS` bigint(21) NOT NULL DEFAULT '0',
  `MYSQL_TMPFILE_CREATED` int(11) NOT NULL DEFAULT '0',
  `MYSQL_TMP_TABLES` int(11) NOT NULL DEFAULT '0',
  `MYSQL_TMP_DISKTABLES` int(11) NOT NULL DEFAULT '0',
  `MYSQL_SORT_MERGE` int(11) NOT NULL DEFAULT '0',
  `MYSQL_SORT_ROWS` int(11) NOT NULL DEFAULT '0',
  `MYSQL_BYTES_RECEIVED` bigint(21) NOT NULL DEFAULT '0',
  `MYSQL_BYTES_SENT` bigint(21) NOT NULL DEFAULT '0',
  `MYSQL_BINLOG_OFFSET` int(11) NOT NULL DEFAULT '0',
  `MYSQL_IOLOG_OFFSET` int(11) NOT NULL DEFAULT '0',
  `MYSQL_RELAYLOG_OFFSET` int(11) NOT NULL DEFAULT '0',
  `EXTRA` json NOT NULL DEFAULT 'null'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Referência de colunas

As colunas estão agrupadas por área funcional.

Recursos do sistema

Coluna

Descrição

TIME

Timestamp da linha. Formato: yyyy-MM-dd HH:mm:ss.

PROCS_MEM_USAGE

Memória física utilizada pelo cluster. Unidade: bytes.

PROCS_CPU_RATIO

Utilização da CPU.

PROCS_IOPS

Quantidade de operações de I/O executadas.

PROCS_IO_READ_BYTES

Volume de dados lido pelas operações de I/O. Unidade: bytes.

PROCS_IO_WRITE_BYTES

Volume de dados gravado pelas operações de I/O. Unidade: bytes.

Conexões e sessões

Coluna

Descrição

MYSQL_CONN_ABORT

Total de conexões encerradas.

MYSQL_CONN_CREATED

Total de novas conexões estabelecidas.

MYSQL_USER_CONN_COUNT

Contagem geral de conexões.

MYSQL_CONN_RUNNING

Quantidade de conexões ativas no momento.

Locks

Coluna

Descrição

MYSQL_LOCK_IMMEDIATE

Quantidade de locks mantidos.

MYSQL_LOCK_WAITED

Total de eventos de espera por lock.

Instruções SQL

Coluna

Descrição

MYSQL_COM_INSERT

Instruções INSERT executadas.

MYSQL_COM_UPDATE

Instruções UPDATE executadas.

MYSQL_COM_DELETE

Instruções DELETE executadas.

MYSQL_COM_SELECT

Instruções SELECT executadas.

MYSQL_COM_COMMIT

Transações confirmadas explicitamente.

MYSQL_COM_ROLLBACK

Transações revertidas.

MYSQL_COM_PREPARE

Prepared statements processados.

MYSQL_LONG_QUERY

Consultas lentas identificadas.

Cache e objetos temporários

Coluna

Descrição

MYSQL_TCACHE_GET

Acessos bem-sucedidos ao cache (hits).

MYSQL_TCACHE_MISS

Falhas de acesso ao cache (misses).

MYSQL_TMPFILE_CREATED

Arquivos temporários gerados.

MYSQL_TMP_TABLES

Tabelas temporárias criadas em memória.

MYSQL_TMP_DISKTABLES

Tabelas temporárias criadas em disco.

Operações de ordenação

Coluna

Descrição

MYSQL_SORT_MERGE

Mesclagens de dados realizadas durante a ordenação.

MYSQL_SORT_ROWS

Linhas submetidas a processos de ordenação.

Rede e replicação

Coluna

Descrição

MYSQL_BYTES_RECEIVED

Dados recebidos pelo nó. Unidade: bytes.

MYSQL_BYTES_SENT

Dados enviados pelo nó. Unidade: bytes.

MYSQL_BINLOG_OFFSET

Tamanho do arquivo de log binário gerado. Unidade: bytes.

MYSQL_IOLOG_OFFSET

Tamanho do arquivo de log binário transmitido pelo nó primário. Unidade: bytes.

MYSQL_RELAYLOG_OFFSET

Tamanho do arquivo de log binário aplicado pelo nó somente leitura. Unidade: bytes.

Mecanismo InnoDB (coluna EXTRA)

A coluna EXTRA armazena estatísticas do mecanismo InnoDB como um objeto JSON. Os valores correspondem àqueles retornados pelo comando SHOW STATUS.

Utilize expressões de caminho JSON para extrair campos individuais:

SELECT TIME, EXTRA->'$.INNODB_ROWS_READ', EXTRA->'$.INNODB_ROWS_INSERTED'
FROM performance_schema.PERF_STATISTICS
ORDER BY TIME DESC
LIMIT 30;

Campo

Descrição

INNODB_TRX_CNT

Total de transações.

INNODB_DATA_READ

Volume de dados lido. Unidade: bytes.

INNODB_IBUF_SIZE

Páginas mescladas.

INNODB_LOG_WAITS

Esperas do InnoDB para gravar dados de log.

INNODB_MAX_PURGE

Transações removidas.

INNODB_N_WAITING

Locks pendentes aguardados pelo InnoDB.

INNODB_ROWS_READ

Linhas lidas.

INNODB_LOG_WRITES

Gravações de dados de log pelo InnoDB.

INNODB_IBUF_MERGES

Mesclagens de dados efetuadas pelo InnoDB.

INNODB_DATA_WRITTEN

Volume de dados gravado. Unidade: bytes.

INNODB_DBLWR_WRITES

Operações de doublewrite executadas.

INNODB_IBUF_SEGSIZE

Tamanho dos dados inseridos no insert buffer.

INNODB_ROWS_DELETED

Linhas excluídas.

INNODB_ROWS_UPDATED

Linhas atualizadas.

INNODB_COMMIT_TRXCNT

Transações confirmadas (committed).

INNODB_IBUF_FREELIST

Comprimento da lista ociosa.

INNODB_MYSQL_TRX_CNT

Transações do MySQL.

INNODB_ROWS_INSERTED

Linhas inseridas.

INNODB_ACTIVE_TRX_CNT

Transações em andamento.

INNODB_OS_LOG_WRITTEN

Dados de log gravados em disco. Unidade: bytes.

INNODB_ACTIVE_VIEW_CNT

Views ativas.

INNODB_RSEG_HISTORY_LEN

Comprimento da tabela TRX_RSEG_HISTORY.

INNODB_AVG_COMMIT_TRXTIME

Tempo médio para confirmar uma transação.

INNODB_MAX_COMMIT_TRXTIME

Tempo máximo registrado para confirmar uma transação.

INNODB_DBLWR_PAGES_WRITTEN

Páginas escritas por operações de doublewrite.

Exemplos de consulta

Todos os exemplos consultam a tabela performance_schema.PERF_STATISTICS e ordenam os resultados por TIME DESC.

Recuperar snapshots brutos

Consulte 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 performance_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)

Consulte as linhas lidas e inseridas no InnoDB nos últimos 30 segundos:

MySQL> SELECT TIME, EXTRA->'$.INNODB_ROWS_READ', EXTRA->'$.INNODB_ROWS_INSERTED'
       FROM performance_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)

Conectar a uma plataforma de monitoramento

Integre a tabela PERF_STATISTICS a uma plataforma externa de monitoramento para visualizar as métricas ao longo do tempo. A imagem abaixo exibe um exemplo de painel do Grafana conectado aos dados de desempenho do PolarDB.

Grafana