すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:パフォーマンスエージェント

最終更新日:Mar 29, 2026

パフォーマンスエージェントは、インスタンスレベルのパフォーマンスメトリクスを一定の間隔で収集し、クエリ可能なインメモリテーブル (information_schema.PERF_STATISTICS) に格納する AliSQL プラグインです。これを使用して、ライブパフォーマンスデータに対してカスタム SQL クエリを実行したり、Grafana でリアルタイムダッシュボードを構築したり、独自のモニタリングパイプラインにメトリクスを供給したりできます。

前提条件

開始する前に、ご利用のインスタンスが次のバージョン要件を満たしていることを確認してください:

  • マイナーエンジンバージョンが 20200229 以降の MySQL 8.0

  • マイナーエンジンバージョンが 20200229 以降の MySQL 5.7

  • マイナーエンジンバージョンが 20200630 以降の MySQL 5.6

マイナーエンジンバージョンの更新手順については、「ApsaraDB RDS for MySQL インスタンスのマイナーエンジンバージョンの更新」をご参照ください。

仕組み

パフォーマンスエージェントは、主要なパフォーマンスメトリクスのスナップショットを一定の間隔 (デフォルト:1 秒) で information_schema.PERF_STATISTICS に書き込みます。このテーブルはインメモリ構造であり、新しいエントリが到着すると古いエントリが削除されます。

デフォルト設定 (performance_agent_interval=1performance_agent_perfstat_volume_size=3600) では、テーブルは 3,600 行を保持し、これは約 1 時間前のデータに相当します。

データ保持期間の概要

収集間隔保持されるレコード保持されるデータ
1 秒 (デフォルト)3,600 (デフォルト)約 1 時間
5 秒3,600 (デフォルト)約 5 時間
10 秒3,600 (デフォルト)約 10 時間
1 秒7,200約 2 時間

より多くの履歴を保持するには、performance_agent_perfstat_volume_size の値を増やします。これにより追加のメモリが使用されるため、ご利用のインスタンスで利用可能なリソースとのトレードオフを考慮してください。

パフォーマンスエージェントの設定

以下のパラメーターでパフォーマンスエージェントの動作を制御します。これらのパラメーターは ApsaraDB RDS コンソールには表示されません。いずれかのパラメーターの現在の値を確認するには、次のコマンドを実行します:

SHOW VARIABLES LIKE '<parameter_name>';
パラメーター説明デフォルト
performance_agent_enabledパフォーマンスエージェントを有効または無効にします。有効な値:ONOFFON
performance_agent_intervalRDS がパフォーマンススナップショットを収集する頻度です。単位:秒。間隔が短いほど、データ収集の頻度が高くなり、メモリ使用量も増加します。1
performance_agent_perfstat_volume_sizePERF_STATISTICS テーブルの最大行数です。この制限に達すると、最も古い行が削除されます。3600
performance_agent_file_sizeディスクに書き込まれるパフォーマンスデータファイルのサイズです。単位:MB。
performance_agent_network_deviceホストの物理ネットワークインターフェイスコントローラー (NIC) 名のプレフィックスです。

パフォーマンスデータのクエリ

すべてのクエリは information_schema.PERF_STATISTICS に対して実行されます。ORDER BY TIME DESCLIMIT を使用して、直近 N 秒間のデータを取得します。

リソースメトリクス (CPU、メモリ、I/O)

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 |
...
+---------------------+-----------------+-----------------+
30 rows in set (0.08 sec)

InnoDB メトリクス

InnoDB の統計情報は、EXTRA 列に JSON オブジェクトとして格納されます。-> 演算子を使用して個々のフィールドを抽出します。

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                               |
...
+---------------------+-----------------------------+---------------------------------+
30 rows in set (0.08 sec)

EXTRA 列の値は、SHOW STATUS によって返される値と一致します。

モニタリングプラットフォームへの接続

リアルタイムダッシュボードを利用するために、パフォーマンスエージェントをモニタリングプラットフォームに接続します。たとえば、Grafana に接続します。Grafana

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_USAGERDS インスタンスが使用する物理メモリです。単位:バイト。
PROCS_MEM_RATIOMySQL プロセスのメモリ使用率です。
PROCS_CPU_RATIORDS インスタンスの CPU 使用率です。
PROCS_IOPSI/O 操作の総数です。
PROCS_IOPS_READコンテナ内のプロセスの読み取り IOPS です。
PROCS_IOPS_WRITEコンテナ内のプロセスの書き込み IOPS です。
PROCS_IO_READ_BYTESI/O 操作によって読み取られたデータです。単位:バイト。
PROCS_IO_WRITE_BYTESI/O 操作によって書き込まれたデータです。単位:バイト。

接続メトリクス

説明
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ロック待ちイベントの数です。

SQL 実行メトリクス

説明
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_MULTI複数テーブルの UPDATE ステートメントの数です。
MYSQL_COM_DELETEDELETE ステートメントの数です。
MYSQL_COM_DELETE_MULTI複数テーブルの DELETE ステートメントの数です。
MYSQL_COM_SELECTSELECT ステートメントの数です。
MYSQL_COM_COMMIT明示的にコミットされたトランザクションの数です。
MYSQL_COM_ROLLBACKロールバックされたトランザクションの数です。
MYSQL_COM_PREPAREプリペアドステートメントの数です。
MYSQL_HANDLER_COMMITCOMMIT ステートメントが実行された回数です。
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受信データです。単位:バイト。
MYSQL_BYTES_SENT送信データです。単位:バイト。

レプリケーションメトリクス

説明
MYSQL_BINLOG_OFFSET生成されたバイナリログファイルのサイズです。単位:バイト。
MYSQL_IOLOG_OFFSETRDS インスタンスからそのセカンダリ RDS インスタンスに送信されたバイナリログファイルのサイズです。単位:バイト。
MYSQL_RELAYLOG_OFFSETセカンダリ RDS インスタンスによって適用されたリレーログのサイズです。単位:バイト。

InnoDB メトリクス (EXTRA 列)

EXTRA 列には、InnoDB の統計情報を含む JSON オブジェクトが格納されます。すべての値は SHOW STATUS によって返される値と一致します。

フィールド説明
INNODB_TRX_CNTトランザクション数です。
INNODB_DATA_READ読み取られたデータです。単位:バイト。
INNODB_IBUF_SIZE挿入バッファーでマージされたページの数です。
INNODB_LOG_WAITSInnoDB がログデータの書き込みを待機した回数です。
INNODB_MAX_PURGEパージされたトランザクションの数です。
INNODB_N_WAITINGInnoDB が待機しているロックの数です。
INNODB_ROWS_READ読み取られた行数です。
INNODB_LOG_WRITESInnoDB がログデータを書き込んだ回数です。
INNODB_IBUF_MERGES挿入バッファーのマージ操作の数です。
INNODB_DATA_WRITTEN書き込まれたデータです。単位:バイト。
INNODB_DBLWR_WRITESdoublewrite 操作の数です。
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ディスクに書き込まれたログデータです。単位:バイト。
INNODB_ACTIVE_VIEW_CNTアクティブなビューの数です。
INNODB_RSEG_HISTORY_LENTRX_RSEG_HISTORY リストの長さです。
INNODB_AVG_COMMIT_TRXTIMEトランザクションをコミットするための平均時間です。
INNODB_MAX_COMMIT_TRXTIMEトランザクションをコミットするための最大時間です。
INNODB_DBLWR_PAGES_WRITTENdoublewrite 操作によって書き込まれたページの数です。