🌊

Performance insights の pre-configured Metrics dashbord の各メトリクスを調査

2023/09/16に公開

はじめに

Performance insightsのUIが新しくなり、デフォルトで作成されているMetrics dashbordが表示されるようになったので、メトリクスの内容について調査しました。
DBは奥が深く、どのメトリクスを見ればいいのか分からないので、AWSがデフォルトで作ってくれるダッシュボードを見ることで、数多くのメトリクスからどの視点で見ればいいのか参考にしたいと思います。

widget

CPU utilization (Percent)

Metrics Counter Description
os.cpuUtilization.steal.avg steal 他の仮想マシンが使用中の CPU の使用率
os.cpuUtilization.guest.avg guest ゲストプログラムが使用中の CPU の使用率
os.cpuUtilization.irq.avg irq ソフトウェア割り込みが使用中の CPU の使用率
os.cpuUtilization.wait.avg 待機 I/O アクセスを待機中の CPU の未使用率
os.cpuUtilization.user.avg ユーザー ユーザープログラムが使用中の CPU の使用率
os.cpuUtilization.system.avg システム カーネルが使用中の CPU の使用率
os.cpuUtilization.nice.avg nice 最も低い優先順位で実行されているプログラムが使用中の CPU の使用率

Free memory (Bytes)

Metrics Counter Description
FreeableMemory 解放可能なメモリ (MB) 使用可能な RAM の容量

Out-of-memory kills (Count)

Metrics Counter Description
os.memory.outOfMemoryKillCount.avg メモリ不足キルカウント 前回の収集間隔で発生した OOM キルの数

IO latency (Milliseconds)

Metrics Counter Description
os.diskIO.auroraStorage.readLatency.avg Aurora ストレージ読み取りレイテンシー 読み取り I/O リクエスト送信からその完了までの経過時間(ミリ秒単位)
os.diskIO.auroraStorage.writeLatency.avg Aurora ストレージ書き込みレイテンシー 書き込み I/O リクエスト送信から完了までの平均経過時間(ミリ秒単位)
os.diskIO.rdstemp.await.avg Rdstemp 待機中 リクエストへの応答に必要なミリ秒数 (キュー時間とサービス時間を含む)
CommitLatency コミットレイテンシー (ミリ秒) コミット操作の平均時間

IO operations (Per second)

Metrics Counter Description
os.diskIO.auroraStorage.readIOsPS.avg Aurora ストレージ読み取り IO PS 読み取りオペレーションの 1 秒あたりの数
os.diskIO.auroraStorage.writeIOsPS.avg Aurora ストレージ書き込み IO PS 書き込みオペレーションの 1 秒あたりの数
os.diskIO.rdstemp.readIOsPS.avg Rdstemp 読み取り IO PS 読み取りオペレーションの 1 秒あたりの数
os.diskIO.rdstemp.writeIOsPS.avg Rdstemp 書き込み IO PS 書き込みオペレーションの 1 秒あたりの数

IO throughput (Bytes per second)

Metrics Counter Description
os.diskIO.auroraStorage.readThroughput.avg Aurora ストレージ読み取りスループット DB クラスターへのリクエストによって使用されるネットワーク読み取りスループットの量 (バイト/秒単位)
os.diskIO.auroraStorage.writeThroughput.avg Aurora ストレージ書き込みスループット DB クラスターからのレスポンスによって使用されるネットワーク書き込みスループットの量 (バイト/秒単位)
os.diskIO.rdstemp.readKbPS.avg Rdstemp 読み取り KB PS 読み取りの 1 秒あたりのキロバイト数
os.diskIO.rdstemp.writeKbPS.avg Rdstemp 書き込み KB PS 書き込みの 1 秒あたりのキロバイト数。

IO disk queue depth (Requests)

Metrics Counter Description
os.diskIO.auroraStorage.diskQueueDepth.avg Aurora ストレージディスクキューの深さ Aurora ストレージディスクキューの長さ
os.diskIO.rdstemp.avgQueueLen.avg Rdstemp 平均キュー長さ I/O デバイスのキューで待機中のリクエストの数

Network throughput (Bytes per second)

Metrics Counter Description
os.network.tx.avg 送信 1 秒あたりのアップロードバイト数
os.network.rx.avg 受信 1 秒あたりの受信バイト数

Connection utilization (Connections)

Metrics Description
db.Users.Threads_connected.avg 現在開いているコネクション数

Sessions (Sessions)

Metrics Description
DBLoad DB エンジンのアクティブセッション数
db.Users.Threads_running.avg スリープしていないスレッドの数
db.Users.Aborted_clients.avg 接続を適切に閉じずにクライアントが終了したために中止された接続の数

Logins (Connections)

Metrics Description
db.Users.Connections.avg MySQLサーバーへの接続試行回数
db.Users.Aborted_connects.avg MySQLサーバーへの接続に失敗した回数

InnoDB history list length (Length)

Metrics Description
db.Transactions.trx_rseg_history_len.avg マルチバージョン同時実行制御を実装するために InnoDB トランザクションシステムによって管理される、コミットされたトランザクションの UNDO ログページのリスト

Queries (Per second)

Metrics Counter Description
db.SQL.Queries.avg クエリ 1 秒あたりのクエリ数

Query latency (Milliseconds)

Metrics Counter Description
SelectLatency 選択でのレイテンシー (ミリ秒) 選択した操作の平均時間
InsertLatency 挿入でのレイテンシー (ミリ秒) 挿入操作の平均時間
UpdateLatency 更新でのレイテンシー (ミリ秒) 更新オペレーションにかかった平均時間
DeleteLatency 削除でのレイテンシー (ミリ秒) 削除操作の平均時間
CommitLatency コミットレイテンシー (ミリ秒) コミット操作の平均時間
DMLLatency DML でのレイテンシー (ミリ秒) 挿入、更新、削除の平均時間
DDLLatency DDL でのレイテンシー (ミリ秒) リクエスト (例、作成、変更、削除リクエストなど) の平均時間

DML (Rows per second)

Metrics Description
db.SQL.Innodb_rows_deleted.avg InnoDB テーブルから削除された行数
db.SQL.Innodb_rows_updated.avg InnoDB テーブルで更新された行数
db.SQL.Innodb_rows_inserted.avg InnoDB テーブルに挿入された行数

Active transactions vs. locks (Transactions)

Metrics Description
db.Transactions.active_transactions.avg アクティブトランザクションの合計数
db.Locks.innodb_row_lock_waits.avg 行ロックを待機した合計数

Query cache hit ratio (Percent)

Metrics Description
db.Cache.query_cache_hit_rate.avg MySQL 結果セットキャッシュ (クエリキャッシュ) のヒット率

Buffer pool hit ratio (Percent)

Metrics Description
db.Cache.innoDB_buffer_pool_hit_rate.avg InnoDB がバッファプールから満たすことができる読み取りの割合 (%)

IO cache vs. disk reads (Pages per second)

Metrics Description
db.Cache.Innodb_buffer_pool_reads.avg InnoDB がバッファプールから満たすことができず、ディスクから直接読み込む必要があった論理リードの数。
db.Cache.innoDB_buffer_pool_hits.avg InnoDB がバッファプールから満たすことができる読み取りの数

Row lock time (Milliseconds)

Metrics Description
db.Locks.Innodb_row_lock_time.avg InnoDBテーブルの行ロック獲得に費やされた合計時間(ミリ秒単位)

Deadlocks (Deadlocks per minute)

Metrics Description
db.Locks.innodb_deadlocks.avg デッドロックの合計数

auroraStorageとrdstempとは?

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.StorageReliability.html

  • Aurora は、非永続的な一時ファイル用に、分離したローカルストレージを使用します。これには、クエリ処理中の大きなデータセットのソートや、インデックスの作成などの目的に使用するファイルが含まれます。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Managing.Performance.html#AuroraMySQL.Managing.TempStorage

  • インスタンスクラス別に使用可能な一時ストレージの最大量が違う

参考URL

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/metrics-reference.html
https://dev.mysql.com/doc/refman/5.7/en/server-status-variables.html

Discussion