- TiDBについて
- クイックスタート
- 発展させる
- 概要
- クイックスタート
- TiDB Cloud(開発者層) で TiDB クラスターを構築する
- TiDB の CRUD SQL
- TiDB でシンプルな CRUD アプリを構築する
- 応用例
- TiDB に接続する
- データベース スキーマの設計
- 書き込みデータ
- データの読み取り
- 取引
- 最適化
- トラブルシューティング
- 参照
- 書店のサンプル アプリケーション
- ガイドライン
- アーカイブされたドキュメント
- クラウドネイティブ開発環境
- サードパーティのサポート
- デプロイ
- 移行する
- 管理
- 監視と警告
- トラブルシューティング
- TiDB トラブルシューティング マップ
- 遅いクエリを特定する
- 遅いクエリを分析する
- SQL 診断
- Top SQLを使用して高価なクエリを特定する
- ログを使用して高価なクエリを特定する
- ステートメント要約表
- ホットスポットの問題のトラブルシューティング
- 増加した読み取りおよび書き込み遅延のトラブルシューティング
- クラスターのオンサイト情報の保存と復元
- クラスタ セットアップのトラブルシューティング
- 高いディスク I/O 使用率のトラブルシューティング
- ロック競合のトラブルシューティング
- TiFlash のトラブルシューティング
- オプティミスティック トランザクションでの書き込み競合のトラブルシューティング
- データとインデックス間の不一致のトラブルシューティング
- 性能チューニング
- チューニングガイド
- Configuration / コンフィグレーションのチューニング
- システムのチューニング
- ソフトウェアのチューニング
- Configuration / コンフィグレーション
- コプロセッサ キャッシュ
- SQL チューニング
- チュートリアル
- TiDB ツール
- 概要
- ユースケース
- ダウンロード
- TiUP
- ドキュメンテーション マップ
- 概要
- 用語と概念
- TiUP コンポーネントの管理
- FAQ
- トラブルシューティングガイド
- コマンドリファレンス
- 概要
- TiUP コマンド
- TiUP クラスタ コマンド
- 概要
- tiup cluster audit
- tiup cluster check
- tiup cluster clean
- tiup cluster deploy
- tiup cluster destroy
- tiup cluster disable
- tiup cluster display
- tiup cluster edit-config
- tiup cluster enable
- tiup cluster help
- tiup cluster import
- tiup cluster list
- tiup cluster patch
- tiup cluster prune
- tiup cluster reload
- tiup cluster rename
- tiup cluster replay
- tiup cluster restart
- tiup cluster scale-in
- tiup cluster scale-out
- tiup cluster start
- tiup cluster stop
- tiup cluster template
- tiup cluster upgrade
- TiUP DMコマンド
- TiDB クラスター トポロジ リファレンス
- DM クラスタ トポロジ リファレンス
- ミラー リファレンス ガイド
- TiUP コンポーネント
- PingCAPクリニック診断サービス
- TiDB Operator
- Dumpling
- TiDB Lightning
- TiDB データ移行
- バックアップと復元 (BR)
- Binlog
- TiCDC
- Dumpling
- 同期差分インスペクター
- ティスパーク
- 参照
- クラスタ アーキテクチャ
- 主な監視指標
- セキュリティ
- 権限
- SQL
- SQL 言語の構造と構文
- SQL ステートメント
ADD COLUMN
ADD INDEX
ADMIN
ADMIN CANCEL DDL
ADMIN CHECKSUM TABLE
ADMIN CHECK [TABLE|INDEX]
ADMIN SHOW DDL [JOBS|QUERIES]
ADMIN SHOW TELEMETRY
ALTER DATABASE
ALTER INDEX
ALTER INSTANCE
ALTER PLACEMENT POLICY
ALTER TABLE
ALTER TABLE COMPACT
ALTER USER
ANALYZE TABLE
BACKUP
BATCH
BEGIN
CHANGE COLUMN
COMMIT
CHANGE DRAINER
CHANGE PUMP
CREATE [GLOBAL|SESSION] BINDING
CREATE DATABASE
CREATE INDEX
CREATE PLACEMENT POLICY
CREATE ROLE
CREATE SEQUENCE
CREATE TABLE LIKE
CREATE TABLE
CREATE USER
CREATE VIEW
DEALLOCATE
DELETE
DESC
DESCRIBE
DO
DROP [GLOBAL|SESSION] BINDING
DROP COLUMN
DROP DATABASE
DROP INDEX
DROP PLACEMENT POLICY
DROP ROLE
DROP SEQUENCE
DROP STATS
DROP TABLE
DROP USER
DROP VIEW
EXECUTE
EXPLAIN ANALYZE
EXPLAIN
FLASHBACK TABLE
FLUSH PRIVILEGES
FLUSH STATUS
FLUSH TABLES
GRANT <privileges>
GRANT <role>
INSERT
KILL [TIDB]
LOAD DATA
LOAD STATS
MODIFY COLUMN
PREPARE
RECOVER TABLE
RENAME INDEX
RENAME TABLE
REPLACE
RESTORE
REVOKE <privileges>
REVOKE <role>
ROLLBACK
SELECT
SET DEFAULT ROLE
SET [NAMES|CHARACTER SET]
SET PASSWORD
SET ROLE
SET TRANSACTION
SET [GLOBAL|SESSION] <variable>
SHOW ANALYZE STATUS
SHOW [BACKUPS|RESTORES]
SHOW [GLOBAL|SESSION] BINDINGS
SHOW BUILTINS
SHOW CHARACTER SET
SHOW COLLATION
SHOW [FULL] COLUMNS FROM
SHOW CONFIG
SHOW CREATE PLACEMENT POLICY
SHOW CREATE SEQUENCE
SHOW CREATE TABLE
SHOW CREATE USER
SHOW DATABASES
SHOW DRAINER STATUS
SHOW ENGINES
SHOW ERRORS
SHOW [FULL] FIELDS FROM
SHOW GRANTS
SHOW INDEX [FROM|IN]
SHOW INDEXES [FROM|IN]
SHOW KEYS [FROM|IN]
SHOW MASTER STATUS
SHOW PLACEMENT
SHOW PLACEMENT FOR
SHOW PLACEMENT LABELS
SHOW PLUGINS
SHOW PRIVILEGES
SHOW [FULL] PROCESSSLIST
SHOW PROFILES
SHOW PUMP STATUS
SHOW SCHEMAS
SHOW STATS_HEALTHY
SHOW STATS_HISTOGRAMS
SHOW STATS_META
SHOW STATUS
SHOW TABLE NEXT_ROW_ID
SHOW TABLE REGIONS
SHOW TABLE STATUS
SHOW [FULL] TABLES
SHOW [GLOBAL|SESSION] VARIABLES
SHOW WARNINGS
SHUTDOWN
SPLIT REGION
START TRANSACTION
TABLE
TRACE
TRUNCATE
UPDATE
USE
WITH
- データ型
- 関数と演算子
- クラスタ化インデックス
- 制約
- 生成された列
- SQL モード
- テーブル属性
- 取引
- ガベージ コレクション (GC)
- ビュー
- パーティショニング
- 一時テーブル
- キャッシュされたテーブル
- 文字セットと照合順序
- SQL の配置規則
- システム テーブル
mysql
- 情報_スキーマ
- 概要
ANALYZE_STATUS
CLIENT_ERRORS_SUMMARY_BY_HOST
CLIENT_ERRORS_SUMMARY_BY_USER
CLIENT_ERRORS_SUMMARY_GLOBAL
CHARACTER_SETS
CLUSTER_CONFIG
CLUSTER_HARDWARE
CLUSTER_INFO
CLUSTER_LOAD
CLUSTER_LOG
CLUSTER_SYSTEMINFO
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
DATA_LOCK_WAITS
DDL_JOBS
DEADLOCKS
ENGINES
INSPECTION_RESULT
INSPECTION_RULES
INSPECTION_SUMMARY
KEY_COLUMN_USAGE
METRICS_SUMMARY
METRICS_TABLES
PARTITIONS
PLACEMENT_POLICIES
PROCESSLIST
REFERENTIAL_CONSTRAINTS
SCHEMATA
SEQUENCES
SESSION_VARIABLES
SLOW_QUERY
STATISTICS
TABLES
TABLE_CONSTRAINTS
TABLE_STORAGE_STATS
TIDB_HOT_REGIONS
TIDB_HOT_REGIONS_HISTORY
TIDB_INDEXES
TIDB_SERVERS_INFO
TIDB_TRX
TIFLASH_REPLICA
TIKV_REGION_PEERS
TIKV_REGION_STATUS
TIKV_STORE_STATUS
USER_PRIVILEGES
VIEWS
METRICS_SCHEMA
- UI
- TiDB ダッシュボード
- 概要
- 管理
- アクセス
- 概要ページ
- クラスター情報ページ
- Top SQLページ
- キー ビジュアライザー ページ
- メトリクス関係グラフ
- SQL ステートメントの分析
- スロークエリページ
- クラスタ診断
- 検索ログ ページ
- インスタンスのプロファイリング
- セッションの管理とConfiguration / コンフィグレーション
- FAQ
- CLI
- コマンド ライン フラグ
- Configuration / コンフィグレーションファイルのパラメーター
- システム変数
- ストレージ エンジン
- テレメトリー
- エラーコード
- テーブル フィルター
- トポロジ ラベルごとにレプリカをスケジュールする
- よくある質問
- リリースノート
- すべてのリリース
- リリースのタイムライン
- TiDB のバージョニング
- v6.1
- v6.0
- v5.4
- v5.3
- v5.2
- v5.1
- v5.0
- v4.0
- v3.1
- v3.0
- v2.1
- v2.0
- v1.0
- 用語集
キービジュアライザーページ
TiDBダッシュボードのKeyVisualizerページは、TiDBの使用状況を分析し、トラフィックのホットスポットをトラブルシューティングするために使用されます。このページには、一定期間のTiDBクラスタのトラフィックが視覚的に表示されます。
キービジュアライザーページにアクセス
次の2つの方法のいずれかを使用して、KeyVisualizerページにアクセスできます。
- TiDBダッシュボードにログインした後、左側のナビゲーションメニューで[キービジュアライザー]をクリックします。
- ブラウザでhttp://127.0.0.1:2379/dashboard/#/keyvizにアクセスします。
127.0.0.1:2379
を実際のPDインスタンスのアドレスとポートに置き換えます。
インターフェイスのデモンストレーション
次の画像は、KeyVisualizerページのデモンストレーションです。
上記のインターフェイスから、次のオブジェクトを確認できます。
- 時間の経過に伴う全体的なトラフィックの変化を示す大きなヒートマップ。
- 特定の座標点の詳細情報。
- テーブル、インデックスなどの情報(ヒートマップの左側)。
基本概念
このセクションでは、KeyVisualizerに関連する基本的な概念を紹介します。
リージョン
TiDBクラスタでは、保存されたデータはTiKVインスタンス間で分散されます。論理的には、TiKVは巨大で整然としたKey-Valueマップです。 Key-Valueスペース全体が多くのセグメントに分割され、各セグメントは一連の隣接するキーで構成されます。このようなセグメントはRegion
と呼ばれます。
リージョンの詳細な紹介については、 TiDB内部(I)-データストレージを参照してください。
ホットスポット
TiDBデータベースを使用する場合、ホットスポットの問題が一般的であり、トラフィックが多く、狭い範囲のデータに集中します。連続するデータ範囲は同じTiKVインスタンスで処理されることが多いため、ホットスポットが発生するTiKVインスタンスは、アプリケーション全体のパフォーマンスのボトルネックになります。ホットスポットの問題は、次のシナリオでよく発生します。
- 隣接するデータを
AUTO_INCREMENT
の主キーを使用してテーブルに書き込みます。これにより、このテーブルでホットスポットの問題が発生します。 - 隣接する時間データをテーブルの時間インデックスに書き込みます。これにより、テーブルインデックスでホットスポットの問題が発生します。
ホットスポットの詳細については、 並行性の高い書き込みのベストプラクティスを参照してください。
ヒートマップ
ヒートマップはKeyVisualizerのコア部分であり、時間の経過に伴うメトリックの変化を示します。ヒートマップのX軸は時間を示します。ヒートマップのY軸は、TiDBクラスタのすべてのスキーマとテーブルをカバーするキー範囲に基づいて連続するリージョンを示します。
ヒートマップの色が薄いほど、その期間のリージョンの読み取りおよび書き込みトラフィックが少ないことを示します。高温(明るい)の色は、トラフィックが多いことを示します。
リージョン圧縮
TiDBクラスタには、最大で数十万のリージョンが含まれる場合があります。画面にこれほど多くの地域を表示することは困難です。したがって、各ヒートマップで、これらのリージョンは1,500の連続した範囲に圧縮され、各範囲はバケットと呼ばれます。ヒートマップでは、より高温のインスタンスに注意を払う必要があるため、Key Visualizerは、トラフィックの少ない多数のリージョンを1つのバケットに圧縮し、トラフィックの多いリージョンを1つのバケットに表示する傾向があります。
キービジュアライザーを使用する
このセクションでは、KeyVisualizerの使用方法を紹介します。
設定
Key Visualizerページを初めて使用するには、 [設定]ページでこの機能を手動で有効にする必要があります。ページガイドに従い、[設定を開く]をクリックして設定ページを開きます。
この機能を有効にした後、右上隅にある[設定]アイコンをクリックして設定ページを開くことができます。
設定ページは次のように表示されます。
スイッチを介してデータ収集を開始するかどうかを設定し、[保存]をクリックして有効にします。この機能を有効にすると、ツールバーが使用可能になっていることがわかります。
この機能を有効にすると、バックエンドでデータ収集が行われます。すぐにヒートマップを見ることができます。
特定の期間またはリージョンの範囲を観察する
Key Visualizerを開くと、最近6時間のデータベース全体のヒートマップがデフォルトで表示されます。このヒートマップでは、右側(現在の時間)に近いほど、バケットの各列に対応する時間間隔が短くなります。特定の期間または特定のリージョン範囲を観察したい場合は、ズームインして詳細を取得できます。具体的な手順は次のとおりです。
ヒートマップを上下にスクロールします。
次のボタンのいずれかをクリックしてドラッグし、範囲を選択します。
- [選択してズーム]ボタンをクリックします。次に、このボタンをクリックしてドラッグし、ズームインする領域を選択します。
- [リセット]ボタンをクリックして、リージョン範囲をデータベース全体にリセットします。
- 時間選択ボックス(上のインターフェースの
6 hours
の位置)をクリックして、観測期間を再度選択します。
ノート:
上記の手順の手順2に従うと、ヒートマップが再描画されます。これは、元のヒートマップとは大きく異なる場合があります。より詳細に観察すると、リージョン圧縮の粒度が変更されたか、特定の範囲の
hot
の基準が変更されたため、この違いは正常です。
明るさを調整する
ヒートマップは、さまざまな明るさの色を使用してバケットトラフィックを示します。ヒートマップの色が薄いほど、その期間のリージョンの読み取りおよび書き込みトラフィックが少ないことを示します。高温(明るい)の色は、トラフィックが多いことを示します。色が冷たすぎたり、熱すぎたりすると、詳細に観察することが困難になります。この状況では、[明るさ]ボタンをクリックしてから、スライダーを使用してページの明るさを調整できます。
ノート:
Key Visualizerがエリアのヒートマップを表示するとき、このエリアのトラフィックに応じて、寒さと暑さの基準を定義します。エリア全体のトラフィックが比較的均一である場合、全体のトラフィックの値が低くても、明るい色の大きなエリアが表示される場合があります。分析に値を含めることを忘れないでください。
指標を選択する
メトリック選択ボックス(上記のインターフェイスのWrite (bytes)
番目の位置)でこのメトリックを選択すると、関心のあるメトリックを表示できます。
Read (bytes)
:トラフィックを読み取ります。Write (bytes)
:トラフィックを書き込みます。Read (keys)
:読み取られた行の数。Write (keys)
:書き込まれた行の数。All
:読み取りトラフィックと書き込みトラフィックの合計。
更新と自動更新
現在の時刻に基づいてヒートマップを復元するには、[更新]ボタンをクリックします。データベースのトラフィック分布をリアルタイムで監視する必要がある場合は、[更新]ボタンの右側にある下向き矢印をクリックし、ヒートマップの固定時間間隔を選択して、この間隔で自動的に更新します。
ノート:
時間範囲またはリージョン範囲を調整すると、自動更新は無効になります。
バケットの詳細を見る
関心のあるバケットにマウスを合わせると、このリージョン範囲の詳細情報が表示されます。以下の画像は、この情報の例です。
この情報をコピーする場合は、バケットをクリックします。次に、関連する詳細が記載されたページが一時的に固定されます。情報をクリックすると、クリップボードにコピーされます。
一般的なヒートマップタイプ
このセクションでは、KeyVisualizerの4つの一般的なタイプのヒートマップを示して解釈します。
均等に分散されたワークロード
上記のヒートマップでは、明るい色と暗い色がきめ細かく混ざっています。これは、読み取りまたは書き込みが時間の経過とともにキー範囲間で均等に分散されていることを示しています。ワークロードはすべてのノードに均等に分散されます。これは分散データベースに最適です。
定期的に読み取りと書き込み
上記のヒートマップでは、X軸(時間)に沿って明るさと暗さが交互になっていますが、明るさはY軸(リージョン)に沿って比較的均一です。これは、読み取りと書き込みが定期的に変更されることを示しています。これは、定期的にスケジュールされたタスクのシナリオで発生する可能性があります。たとえば、ビッグデータプラットフォームは毎日定期的にTiDBからデータを抽出します。この種のシナリオでは、ピーク使用時にリソースが十分であるかどうかに注意してください。
集中的な読み取りまたは書き込み
上記のヒートマップでは、いくつかの明るい線を見ることができます。 Y軸に沿って、明るい線の周りのフリンジは暗くなります。これは、明るい線に対応する領域の読み取りおよび書き込みトラフィックが多いことを示しています。トラフィックの分散がアプリケーションによって予期されているかどうかを確認できます。たとえば、すべてのサービスがユーザーテーブルに関連付けられている場合、ユーザーテーブルの全体的なトラフィックが多くなる可能性があるため、ヒートマップに明るい線を表示するのが妥当です。
さらに、輝線の高さ(Y軸に沿った太さ)も重要です。 TiKVには独自のリージョンベースのホットスポットバランシングメカニズムがあるため、ホットスポットに関与するリージョンが多いほど、すべてのTiKVインスタンス間でトラフィックのバランシングに適しています。太くて明るい線は、ホットスポットがより分散していることを示しており、TiKVの方が適しています。細い線と少ない輝線は、ホットスポットがより集中していることを示し、ホットスポットの問題はTiKVでより明白になり、手動による介入が必要になる場合があります。
シーケンシャル読み取りまたは書き込み
上のヒートマップでは、明るい線を見ることができます。これは、データの読み取りまたは書き込みがシーケンシャルであることを意味します。シーケンシャルデータの読み取りまたは書き込みの一般的なシナリオは、データのインポートまたはテーブルとインデックスのスキャンです。たとえば、自動インクリメントIDを使用してテーブルにデータを継続的に書き込みます。
明るい領域の領域は、読み取りおよび書き込みトラフィックのホットスポットであり、クラスタ全体のパフォーマンスのボトルネックになることがよくあります。この状況では、アプリケーションの主キーを再調整する必要がある場合があります。これを行うことにより、リージョンを可能な限り分散させて、複数のリージョンに圧力を分散させます。また、低ピーク時にアプリケーションタスクをスケジュールすることもできます。
ノート:
このセクションでは、一般的なタイプのヒートマップのみを示します。 Key Visualizerは、実際にはクラスタ全体のすべてのスキーマとテーブルのヒートマップを表示するため、さまざまな領域にさまざまなタイプのヒートマップが表示されたり、複数のヒートマップタイプの結果が混在したりする場合があります。実際の状況に基づいてヒートマップを使用します。
ホットスポットの問題に対処する
TiDBには、一般的なホットスポットの問題を軽減するための組み込み機能がいくつかあります。詳細は並行性の高い書き込みのベストプラクティスを参照してください。