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