CloudDBA のレイテンシーインサイト機能は、Tair (Redis OSS-compatible) データベース内のすべてのコマンドとカスタムイベントのレイテンシー統計を収集します。統計はマイクロ秒単位で正確です。この機能を使用して、Tair (Redis OSS-compatible) データベースの障害やパフォーマンスの低下をトラブルシューティングできます。
概要
Redis 2.8.13 では、レイテンシーモニタリング機能が導入されました。この機能は、イベントベースのメカニズムを使用して、潜在的なレイテンシーの問題を見つけてトラブルシューティングするのに役立ちます。過去 160 秒間のデータしか取得できず、1 秒あたりのレイテンシーが最も高いイベントのみを保存します。
レイテンシーインサイトは、Tair (Redis OSS-compatible) が提供する高度なレイテンシー統計機能です。最大 27 のイベントとすべての Redis コマンドの実行時間を記録します。また、過去 3 日間のすべてのレイテンシー統計も保存します。レイテンシーインサイトには次の特徴があります。
永続的: データの永続性とレイテンシースパイクの追跡をサポートします。
高精度: ミリ秒単位ですべてのイベントを監視できます。
高性能: パフォーマンスへの影響を最小限に抑えた非同期実装をサポートします。
リアルタイム: リアルタイムのデータクエリと集約操作をサポートします。
多次元: イベント、時間、レイテンシーに基づいてインスタンスを分析できる包括的なレイテンシーデータを提供します。
前提条件
Tair (Redis OSS-compatible) インスタンスは、次のいずれかのマイナーバージョンを使用する必要があります。マイナーバージョンの更新方法の詳細については、「インスタンスのマイナーバージョンを更新する」をご参照ください。
インスタンスが Tair (Enterprise Edition) メモリ最適化インスタンスである場合、マイナーバージョン 1.6.9 以降。Tair モジュールコマンドに関する統計を収集する場合は、マイナーバージョンを 1.7.28 以降に更新してください。
インスタンスが Redis Open-Source Edition 5.0 インスタンスである場合、マイナーバージョン 5.1.4 以降。
インスタンスが Redis Open-Source Edition 6.0 インスタンスである場合、マイナーバージョン 0.1.15 以降。
インスタンスが Redis Open-Source Edition 7.0 インスタンスである場合、マイナーバージョン 7.0.0.6 以降。
課金
この機能は無料で利用できます。
手順
コンソールにログインし、[インスタンス] ページに移動します。上部のナビゲーションバーで、インスタンスがデプロイされているリージョンを選択します。次に、インスタンスを見つけてその ID をクリックします。
左側のナビゲーションウィンドウで、 をクリックします。
[レイテンシーインサイト] ページで、時間範囲を選択し、[検索] をクリックします。デフォルトでは、過去 5 分間の統計が表示されます。
クラスターインスタンスと読み書き分離インスタンスの場合、[データノード] と [プロキシノード] の統計を表示できます。
説明過去 3 日間のデータをクエリできます。選択した時間範囲は 1 時間を超えることはできません。
リスト内のイベント名または数値をクリックして、対応するメトリックの経時的な傾向を表示します。
トレンドチャートでは、対応するメトリックを選択して、その経時的な傾向を表示することもできます。
説明指定されたしきい値よりも時間がかかるコマンドまたはイベントのみが記録および表示されます。インスタンスのレイテンシーの問題が発生した場合は、「一般的なレイテンシーイベントを処理するための提案」をご参照ください。

メトリック
説明
イベント
イベントの名前。例には、ExpireCycle、EventLoop、Ping、Scan、Commands、Info などがあります。詳細については、「付録: 一般的な特殊イベント」をご参照ください。
合計
イベントの数。
平均レイテンシー (us)
イベントの平均レイテンシー (マイクロ秒 (us))。
最大レイテンシー (us)
イベントの最大レイテンシー (マイクロ秒 (us))。
集約カウント (< 1 ms)
レイテンシーが 1 ms 未満のイベントの集約カウント。
アイコンをクリックすると、<1 us、<2 us、<4 us、<8 us、<16 us、<32 us、<64 us、<128 us、<256 us、<512 us、<1 ms などのより小さい時間範囲の統計を表示できます。説明カウントルール: たとえば、<1 us は 0 us から 1 us までのレイテンシーを持つイベントをカウントします。<2 us は 1 us から 2 us までのレイテンシーを持つイベントをカウントします。
<2ms
<4ms
...
>33s
このレイテンシー範囲内のイベントの数。
説明カウントルール: たとえば、<2 ms は 1 ms から 2 ms までのレイテンシーを持つイベントをカウントします。>33s は 33s を超えるレイテンシーを持つイベントをカウントします。
付録: 一般的な特殊イベント
カテゴリ | 名前 | しきい値 | 説明 |
メモリのエビクション | EvictionDel | 30 ms | 特定のエビクションサイクルでエビクションされたキーを削除するために必要な時間。 |
EvictionLazyFree | 30 ms | 特定のエビクションサイクルでバックグラウンドスレッドがメモリを解放するのにかかる時間。 | |
EvictionCycle | 30 ms | エビクションを実行するために必要な時間。エビクションサイクルには、エビクションするデータの選択と削除に必要な時間、およびバックグラウンドスレッドの待機に費やされる時間が含まれます。 | |
メモリの最適化 | ActiveDefragCycle | 100 ms | メモリを最適化するために必要な時間。 |
リハッシュ | Rehash | 100 ms | リハッシュを実行するために必要な時間。 |
データ構造のアップグレード | ZipListConvertHash | 30 ms | ハッシュエンコーディングによって ziplist を辞書に変換するために必要な時間。 |
IntsetConvertSet | 30 ms | セットエンコーディングによって intset をセットに変換するために必要な時間。 | |
ZipListConvertZset | 30 ms | ziplist エンコーディングによって ziplist を skiplist に変換するために必要な時間。 | |
追記専用ファイル (AOF) | AofWriteAlone | 30 ms | 期待どおりに AOF を書き込むために必要な時間。 |
AofWrite | 30 ms | AOF を書き込むために必要な時間。AOF が正常に書き込まれるたびに、AofWrite イベントと、AofWriteAlone、AofWriteActiveChild、AofWritePendingFsync の 3 つのイベントのいずれかが記録されます。 | |
AofFstat | 30 ms | Fstat レイテンシー。 | |
AofRename | 30 ms | AOF の名前を変更するために必要な時間。 | |
AofReWriteDiffWrite | 30 ms | 子プロセスが AOF を再書き込みした後に親プロセスが実行する増分 AOF 書き込みによって消費される時間。 | |
AofWriteActiveChild | 30 ms | AOF をディスクに書き込むために必要な時間。AOF が書き込まれるときに、他の子プロセスがディスクにデータを書き込む場合があります。 | |
AofWritePendingFsync | 30 ms | AOF を書き込むために必要な時間。AOF が書き込まれるときに、バックグラウンドプロセスが fsync 操作を実行している場合があります。 | |
Redis データベース (RDB) ファイル | RdbUnlinkTempFile | 50 ms | bgsave 子プロセスが終了した後に一時 RDB ファイルを削除するために必要な時間。 |
その他 | Commands | 30 ms | @fast でマークされていない通常のコマンドを実行するのにかかる時間。 |
FastCommand | 30 ms | @fast でマークされたコマンドを実行するのにかかる時間。これらのコマンドの時間計算量は O(1) または O(log N) です。 | |
EventLoop | 50 ms | メインイベントループを実行するために必要な時間。 | |
Fork | 100 ms | fork 操作を呼び出すために必要な時間。 | |
Transaction | 50 ms | トランザクションによって実際に消費される時間。 | |
PipeLine | 50 ms | マルチスレッドパイプラインによって消費される時間。 | |
ExpireCycle | 30 ms | 一度に期限切れのキーをクリアするために必要な時間。 | |
ExpireDel | 30 ms | キーをクリアするための特定のサイクルで期限切れのキーを削除するために必要な時間。 | |
SlotRdbsUnlinkTempFile | 30 ms | bgsave 子プロセスが終了した後にスロットから一時 RDB ファイルを削除するために必要な時間。 | |
LoadSlotRdb | 100 ms | スロットから RDB ファイルをロードするために必要な時間。 | |
SlotreplTargetcron | 50 ms | スロットから一時データベースに RDB ファイルをロードし、子プロセスを使用してファイルをターゲットデータベースに移行するために必要な時間。 |