全部產品
Search
文件中心

ApsaraDB RDS:Performance Agent

更新時間:Jun 19, 2024

Performance Agent是AliSQL提供的一種更加便捷的效能資料統計方案。通過MySQL外掛程式的方式,實現MySQL執行個體內部各項效能資料的採集與統計。

背景資訊

Performance Agent在information_schema系統庫下新增了一張記憶體表PERF_STATISTICS,用於統計最近一段時間的效能資料,您可以直接查詢該表擷取相關指標的效能資料。

前提條件

執行個體版本如下:

  • MySQL 8.0(核心小版本20200229或以上)
  • MySQL 5.7(核心小版本20200229或以上)
  • MySQL 5.6(核心小版本20200630或以上)
說明 升級核心小版本請參見升級核心小版本

參數說明

與Performance Agent功能相關的參數說明如下。

參數說明
performance_agent_enabled是否開啟Performance Agent功能。取值:ON | OFF。預設值為ON。
performance_agent_file_size本地單個效能資料檔案的大小,單位為MB。
performance_agent_interval效能資料採集間隔。單位為秒,預設值為1。
performance_agent_network_device主機物理網卡名稱首碼。
performance_agent_perfstat_volume_sizePERF_STATISTICS表的最巨量資料條數。預設值為3600。即當採樣間隔為1秒時,儲存最近1小時的效能資料。
說明 上述參數在控制台中不可見,您可通過SHOW VARIABLES LIKE '<參數名稱>';查看參數的狀態。

表結構說明

PERF_STATISTICS記憶體表的結構如下:

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;
列名說明
TIME時間,格式為yyyy-MM-dd HH:mm:ss。
PROCS_MEM_USAGE實體記憶體使用量,單位為Byte。
PROCS_MEM_RATIO進程的記憶體佔用率。
PROCS_CPU_RATIOCPU使用率。
PROCS_IOPS系統IO調用次數。
PROCS_IOPS_READ容器內進程的每秒讀IO。
PROCS_IOPS_WRITE容器內進程的每秒寫IO。
PROCS_IO_READ_BYTESIO讀取資料量,單位為Byte。
PROCS_IO_WRITE_BYTESIO寫入資料量,單位為Byte。
MYSQL_CONN_ABORT中斷連線數。
MYSQL_CONN_CREATED建立串連數。
MYSQL_USER_CONN_COUNT當前總的使用者串連數。
MYSQL_CONN_COUNT總串連數。
MYSQL_CONN_RUNNING當前活躍串連數。
MYSQL_CONNECTIONSMySQL的串連數。
MYSQL_CONN_CACHED阻塞線程數。
MYSQL_LOCK_IMMEDIATE當前鎖佔用數。
MYSQL_LOCK_WAITED當前鎖等待數。
MYSQL_QUESTIONS用戶端發送的SQL總數。
MYSQL_COM_INSERTINSERT語句數。
MYSQL_COM_INSERT_SELECTINSERT SELECT語句數。
MYSQL_COM_REPLACEREPLACE語句數。
MYSQL_COM_REPLACE_SELECTREPLACE SELECT語句數。
MYSQL_COM_UPDATEUPDATE語句數。
MYSQL_COM_UPDATE_MULTIUPDATE MULTI語句數。
MYSQL_COM_DELETEDELETE語句數。
MYSQL_COM_DELETE_MULTIDELETE MULTI語句數。
MYSQL_COM_SELECT查詢語句數。
MYSQL_COM_COMMIT事務提交數(顯式提交)。
MYSQL_COM_ROLLBACK交易回復數。
MYSQL_COM_PREPARE預先處理語句數。
MYSQL_HANDLER_COMMIT內部執行COMMIT的次數。
MYSQL_HANDELR_ROLLBACK請求儲存引擎執行復原操作的次數。
MYSQL_LONG_QUERY慢查詢數。
MYSQL_TCACHE_GET緩衝表命中數。
MYSQL_TCACHE_MISS緩衝表未命中數。
MYSQL_TMPFILE_CREATED臨時檔案建立數。
MYSQL_TMP_TABLES暫存資料表建立數。
MYSQL_TMP_DISKTABLES臨時磁碟表建立數。
MYSQL_SORT_MERGE合并排序次數。
MYSQL_SORT_ROWS排序行數。
MYSQL_BYTES_RECEIVED接收資料量,單位為Byte。
MYSQL_BYTES_SENT發送資料量,單位為Byte。
MYSQL_BINLOG_OFFSET產生的Binlog檔案大小,單位為Byte。
MYSQL_IOLOG_OFFSET主庫發送的Binlog檔案大小,單位為Byte。
MYSQL_RELAYLOG_OFFSET從庫應用的Binlog檔案大小,單位為Byte。
EXTRAInnoDB統計資訊。EXTRA包含多個欄位,為JSON格式。詳細欄位介紹請參見下方EXTRA欄位說明
說明 InnoDB統計資訊的指標項與SHOW STATUS命令顯示的值相同。
表 1. EXTRA欄位說明
欄位說明
INNODB_TRX_CNT事務數。
INNODB_DATA_READ讀取資料量,單位為Byte。
INNODB_IBUF_SIZE合并記錄頁數。
INNODB_LOG_WAITSLog寫入等待次數。
INNODB_MAX_PURGE清除事務數。
INNODB_N_WAITING鎖等待數。
INNODB_ROWS_READ讀取資料行數。
INNODB_LOG_WRITES日誌寫次數。
INNODB_IBUF_MERGES合并次數。
INNODB_DATA_WRITTEN寫入資料量,單位為Byte。
INNODB_DBLWR_WRITES雙寫操作寫入次數。
INNODB_IBUF_SEGSIZE當前插入緩衝大小。
INNODB_ROWS_DELETED刪除資料行數。
INNODB_ROWS_UPDATED更新資料行數。
INNODB_COMMIT_TRXCNT提交事務數。
INNODB_IBUF_FREELIST空閑列表長度。
INNODB_MYSQL_TRX_CNTMySQL事務數。
INNODB_ROWS_INSERTED插入資料行數。
INNODB_ACTIVE_TRX_CNT活躍事務數。
INNODB_OS_LOG_WRITTEN記錄檔寫入量,單位為Byte。
INNODB_ACTIVE_VIEW_CNT活躍視圖數。
INNODB_RSEG_HISTORY_LENTRX_RSEG_HISTORY表長度。
INNODB_AVG_COMMIT_TRXTIME平均事務提交時間。
INNODB_MAX_COMMIT_TRXTIME最長事務提交時間。
INNODB_DBLWR_PAGES_WRITTEN雙寫操作完成寫入次數。

使用方法

  • 直接查詢系統資料表,擷取效能資料。 您可以參見如下樣本:
    • 查詢最近30秒的CPU和記憶體使用量情況,樣本如下:
      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)
    • 查詢最近30秒的InnoDB讀寫的資料行數,樣本如下:
      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)
  • 對接效能監控平台,實現即時監控。例如使用GrafanaGrafana