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

PolarDB:Performance Agent

最終更新日:Mar 28, 2026

Performance Agent は、設定可能な間隔でノードレベルのパフォーマンス統計をインメモリテーブルに書き込む PolarDB for MySQL プラグインです。SQL でテーブルを直接クエリするか、Grafana のようなモニタリングプラットフォームに接続して、CPU、メモリ、I/O、接続数、InnoDB ストレージエンジンのメトリックをリアルタイムで追跡できます。

前提条件

開始する前に、以下を確認してください。

仕組み

Performance Agent は、設定可能な間隔でパフォーマンスデータを収集し、各スナップショットを行として performance_schema システムデータベースの PERF_STATISTICS メモリテーブルに書き込みます。このテーブルには、最新の期間に生成されたパフォーマンスデータが保存されます。

説明

performance_schema を有効にすると、ロック、トランザクション数、およびメモリメトリックをモニターできますが、大量のシステムメモリを消費し、クラスターパフォーマンスに影響を与える可能性があります。PolarDB for MySQL ではデフォルトで無効になっています。有効にする場合は、クラスターの仕様と利用可能なリソースに基づいて、必要なメトリックのみを設定してください。

パラメーター

パラメーター説明デフォルト
performance_agent_enabledPerformance Agent を有効または無効にします。有効な値: ONOFFON
performance_agent_intervalPerformance Agent がデータを収集する頻度。有効な値: 1~60。単位: 秒。1
performance_agent_perfstat_volume_sizePERF_STATISTICS テーブルの最大行数。3600

デフォルト値 (interval = 1volume_size = 3600) の場合、テーブルは約1時間分のデータを保持します。

これらのパラメーターを変更するには、「クラスターおよびノードパラメーターの指定」をご参照ください。

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_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;

カラムリファレンス

カラムは機能領域別にグループ化されています。

システムリソース

カラム説明
TIME行のタイムスタンプ。形式: yyyy-MM-dd HH:mm:ss
PROCS_MEM_USAGEクラスターが使用する物理メモリ。単位: バイト。
PROCS_CPU_RATIOCPU 使用率。
PROCS_IOPS実行された I/O 操作の数。
PROCS_IO_READ_BYTESI/O 操作によって読み取られたデータ。単位: バイト。
PROCS_IO_WRITE_BYTESI/O 操作によって書き込まれたデータ。単位: バイト。

接続とセッション

カラム説明
MYSQL_CONN_ABORTクローズされた接続の数。
MYSQL_CONN_CREATED新規接続の数。
MYSQL_USER_CONN_COUNT接続の総数。
MYSQL_CONN_RUNNINGアクティブ接続の数。

ロック

カラム説明
MYSQL_LOCK_IMMEDIATE保持されているロックの数。
MYSQL_LOCK_WAITEDロック待ちイベントの数。

SQL ステートメント

カラム説明
MYSQL_COM_INSERT実行された INSERT ステートメントの数。
MYSQL_COM_UPDATE実行された UPDATE ステートメントの数。
MYSQL_COM_DELETE実行された DELETE ステートメントの数。
MYSQL_COM_SELECT実行された SELECT ステートメントの数。
MYSQL_COM_COMMIT明示的にコミットされたトランザクションの数。
MYSQL_COM_ROLLBACKロールバックされたトランザクションの数。
MYSQL_COM_PREPARE準備されたステートメントの数。
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_OFFSETプライマリノードによって送信されたバイナリログファイルのサイズ。単位: バイト。
MYSQL_RELAYLOG_OFFSET読み取り専用ノードによって適用されたバイナリログファイルのサイズ。単位: バイト。

InnoDB ストレージエンジン (EXTRA カラム)

EXTRA カラムは、InnoDB ストレージエンジンの統計を JSON オブジェクトとして保存します。値は SHOW STATUS によって返される値と同等です。

個々のフィールドを抽出するには、JSON パス式を使用します。

SELECT TIME, EXTRA->'$.INNODB_ROWS_READ', EXTRA->'$.INNODB_ROWS_INSERTED'
FROM performance_schema.PERF_STATISTICS
ORDER BY TIME DESC
LIMIT 30;
フィールド説明
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_MERGESInnoDB によってデータがマージされた回数。
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 操作によって書き込まれたページ数。

クエリ例

すべての例では、performance_schema.PERF_STATISTICS にクエリを実行し、TIME DESC で結果を並べ替えます。

生のスナップショットの取得

過去 30 秒間の CPU 使用率とメモリ使用量を照会します。

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)

過去 30 秒間に読み取られ、挿入された InnoDB の行を照会します。

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)

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

PERF_STATISTICS を外部モニタリングプラットフォームに接続して、メトリックを時系列で可視化します。以下のスクリーンショットは、PolarDB のパフォーマンスデータに接続された Grafana ダッシュボードの例を示しています。

Grafana