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

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

最終更新日:May 31, 2024

このトピックでは、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_intervalPolarDBがパフォーマンスデータを収集する間隔を指定します。 有効な値: 1 ~ 60。 単位は秒です。 デフォルト値は 1 です。
performance_agent_perfstat_volume_sizePERF_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_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ロック待機イベントの数。
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_WAITSInnoDBがログデータの書き込みを待機する回数。
INNODB_MAX_PURGE削除されたトランザクションの数。
INNODB_N_WAITINGInnoDBが待機するロックの数。
INNODB_ROWS_READ読み取られる行の数。
INNODB_LOG_WRITESInnoDBによってログデータが書き込まれた回数。
INNODB_IBUF_MERGESInnoDBによってデータがマージされた回数。
INNODB_DATA_WRITTEN書き込まれるデータの量。 単位:バイト
INNODB_DBRWR_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書き込まれるログデータの量。 単位:バイト
INNODB_ACTIVE_VIEW_CNTアクティブなビューの数。
INNODB_RSEG_HISTORY_LENTRX_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