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

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

最終更新日:Feb 26, 2025

このトピックでは、PolarDBが提供するパフォーマンスエージェント機能について説明します。 パフォーマンスエージェントをPolarDB for MySQLプラグインとして使用して、PolarDB for MySQLクラスター内のノードのパフォーマンス統計を収集できます。

前提条件

背景情報

パフォーマンスエージェント用に、PERF_STATISTICSという名前のメモリテーブルが追加されます。 このテーブルはperformance_schemaシステムデータベースに保存されます。 このテーブルには, 直近の期间で生成されたパフォーマンスデータが格纳されます。 このテーブルからパフォーマンスデータを照会できます。

説明

performance_schema機能を有効にして、ロック、トランザクション、およびメモリの観点からクラスターのパフォーマンスメトリックを監視できます。 ただし、performance_schema機能を有効にすると、大量のシステムメモリが占有され、クラスターのパフォーマンスが影響を受けます。 performance_schema機能は、デフォルトでPolarDB for MySQLで無効になっています。 performance_schema機能を有効にする場合は、クラスターの仕様とリソースに基づいてperformance_schemaメトリックを慎重に設定することをお勧めします。

パラメーター

次の表に、パフォーマンスエージェントに設定する必要があるパラメーターを示します。

パラメーター

説明

performance_agent_enabled

パフォーマンスエージェント機能を有効にするかどうかを指定します。 有効な値: ONとOFF。 デフォルト値: ON。

performance_agent_interval

PolarDBがパフォーマンスデータを収集する間隔を指定します。 有効な値: 1 ~ 60。 単位は秒です。 デフォルト値は 1 です。

performance_agent_perfstat_volume_size

PERF_STATISTICSメモリテーブルで許可されるデータレコードの最大数を指定します。 デフォルト値は 3600 です。 performance_agent_intervalパラメーターを1に設定した場合、システムは過去1時間以内に生成されたパフォーマンスデータを保持します。

Schema

PERF_STATISTICSメモリテーブルは、次のスキーマを使用します。

一時的なテーブル 'PERF_STATISTS 'を作成します (
  'TIME' datetime NOT NULL DEFAULT '0000-00-00 00:00:00 '、
  'PROCS_MEM_USAGE 'ダブルNOT NULL DEFAULT '0' 、
  'PROCS_CPU_RATIO 'ダブルNOT NULLデフォルト '0' 、
  'PROCS_IOPS' ダブル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 DEAULT '0' 、
  'MYSQL_CONN_CREATED 'int(11) NOT NULL DEAULT '0' 、
  'MYSQL_USER_CONN_COUNT 'int(11) NOT NULL DEFAULT '0' 、
  'MYSQL_CONN_RUNNING 'int(11) NOT NULL DEAULT '0' 、
  'MYSQL_LOCK_IMMEDIATE 'int(11) NOT NULL DEAULT '0' 、
  'MYSQL_LOCK_WAITED 'int(11) NOT NULL DEAULT '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 DEAULT '0' 、
  'MYSQL_COM_PREPARE 'int(11) NOT NULL DEFAULT '0' 、
  'MYSQL_LONG_QUERY 'int(11) NOT NULL DEAULT '0' 、
  'MYSQL_TCACHE_GET 'bigint (21) NOT NULL DEAULT '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 DEAULT '0' 、
  'MYSQL_TMP_DISKTABLES 'int(11) NOT NULL DEFAULT '0' 、
  'MYSQL_SORT_MERGE 'int(11) NOT NULL DEAULT '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 DEAULT '0' 、
  'MYSQL_BINLOG_OFFSET 'int(11) NOT NULL DEAULT '0' 、
  'MYSQL_IOLOG_OFFSET 'int(11) NOT NULL DEAULT '0' 、
  'MYSQL_RELAYLOG_OFFSET 'int(11) NOT NULL DEFAULT '0' 、
  'EXTRA' json NOT NULL DEFAULT 'null'
) エンジン=InnoDBデフォルト料金=utf8; 

説明

時間

データレコードが生成された時刻。 時刻はyyyy-MM-dd HH:mm:ss形式です。

PROCS_MEM_USAGE

クラスターが占有する物理メモリのサイズ。 単位:バイト

PROCS_CPU_RATIO

CPU使用率。

PROCS_IOPS

実行されるI/O操作の数。

PROCS_IO_READ_BYTES

I/O操作によって読み取られるデータの量。 単位:バイト

PROCS_IO_WRITE_BYTES

I/O操作によって書き込まれるデータの量。 単位:バイト

MYSQL_CONN_ABORT

閉じた接続の数。

MYSQL_CONN_CREATED

新しい接続の数。

MYSQL_USER_CONN_COUNT

接続の総数。

MYSQL_CONN_RUNNING

アクティブな接続の数。

MYSQL_LOCK_IMMEDIATE

保持されているロックの数。

MYSQL_LOCK_WAITED

ロック待機イベントの数。

MYSQL_COM_INSERT

データを挿入するために実行されるステートメントの数。

MYSQL_COM_UPDATE

データを更新するために実行されるステートメントの数。

MYSQL_COM_DELETE

データを削除するために実行されるステートメントの数。

MYSQL_COM_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パラメーターの値は複数のフィールドで構成され、JSON形式です。 詳細については、このトピックの「EXTRAパラメーターの値のフィールド」を参照してください。

説明

InnoDB統計のメトリックの値は、SHOW STATUSステートメントを実行して取得した値と同じです。

表1. EXTRAパラメーターの値のフィールド

フィールド

説明

INNODB_TRX_CNT

トランザクションの数。

INNODB_DATA_READ

読み取られるデータの量。 単位:バイト

INNODB_IBUF_SIZE

マージされるページの数。

INNODB_LOG_WAITS

InnoDBがログデータの書き込みを待機する回数。

INNODB_MAX_PURGE

削除されたトランザクションの数。

INNODB_N_WAITING

InnoDBが待機するロックの数。

INNODB_ROWS_READ

読み取られる行の数。

INNODB_LOG_WRITES

InnoDBによってログデータが書き込まれた回数。

INNODB_IBUF_MERGES

InnoDBによってデータがマージされた回数。

INNODB_DATA_WRITTEN

書き込まれるデータの量。 単位:バイト

INNODB_DBRWR_WRITES

ダブル書き込み操作の数。

INNODB_IBUF_SEGSIZE

バッファに挿入されるデータのサイズ。

INNODB_ROWS_DELETED

削除される行の数。

INNODB_ROWS_UPDATED

更新される行の数。

INNODB_COMMIT_TRXCNT

コミットされたトランザクションの数。

INNODB_IBUF_FREELIST

アイドルリストの長さ。

INNODB_MYSQL_TRX_CNT

MySQLトランザクションの数。

INNODB_ROWS_INSERTED

挿入される行の数。

INNODB_ACTIVE_TRX_CNT

アクティブなトランザクションの数。

INNODB_OS_LOG_WRITTEN

書き込まれるログデータの量。 単位:バイト

INNODB_ACTIVE_VIEW_CNT

アクティブなビューの数。

INNODB_RSEG_HISTORY_LEN

TRX_RSEG_HISTORYテーブルの長さ。

INNODB_AVG_COMMIT_TRXTIME

トランザクションのコミットにかかる平均時間。

INNODB_MAX_COMMIT_TRXTIME

トランザクションのコミットにかかる最大時間。

INNODB_DBRWR_PAGES_WRITTEN

二重書き込み操作によって完了した書き込みの数。

Usage

  • 次の文を実行して, システム表を照会し, パフォーマンスデータを取得できます。

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

      performance_schema.PERF_STATISTICSからTIME、PROCS_MEM_USAGE、PROCS_CPU_RATIOを選択します。+ --------------------- + ----------------- + ----------------- +
      | タイム | 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行 (0.08秒) 
    • 過去30秒間にInnoDBによって読み書きされた行を照会します。 例:

      performance_schema.PERF_STATIICSからMySQL> select TIME, EXTRA-> $.INNODB_ROWS_READ ', EXTRA-> $.INNODB_ROWS_INSERTED'
      + --------------------- + ----------------------------- + --------------------------------- +
      | 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行 (0.08秒) 
  • 監視プラットフォームに接続して、データベースのパフォーマンスをリアルタイムで監視します。 たとえば、Grafanaに接続します。 Grafana