Azure Managed Redis (プレビュー) のサーバーに関する問題のトラブルシューティング
このセクションでは、Azure Managed Redis (プレビュー) サーバーまたはそれをホストしている仮想マシンに関する条件が原因で発生する問題のトラブルシューティングについて説明します。
Note
このガイドのトラブルシューティング手順のいくつかには、Redis コマンドを実行し、さまざまなパフォーマンス メトリックを監視する手順が含まれています。 詳細および手順については、「 追加情報 」セクションの記事を参照してください。
高 CPU 使用率CPU
CPU 使用率が高い場合、Redis サーバーはビジー状態になり、要求に適時に対応できないため、タイムアウトになります。 左側の [リソース] メニューから [監視] を選択して、キャッシュに関する [CPU] メトリックを検査します。 CPU グラフが作業ウィンドウの [分析情報] の下に表示されます。 または、メトリック セットを [メトリック] の下の [CPU] に追加します。
CPU 使用率が高い場合に考慮する必要があるオプションを次に示します。
スケールアップまたはより高いパフォーマンス レベルへの移行
パフォーマンスを向上させるには、CPU コアを増やして、より大きなキャッシュ サイズにスケールアップすることを検討してください。 詳細については、「パフォーマンス レベル」を参照してください。
クライアント接続数の急激な変化
詳細については、「クライアント接続のスパイクを回避する」を参照してください。
長期実行または高コストのコマンド
詳細については、長期実行コマンドに関する記事を参照してください。
Scaling
スケーリング操作は、ノード間のデータの移動やクラスター トポロジの変更に関連する可能性があるため、CPU とメモリを集中的に消費します。 詳細については、「スケーリング」を参照してください。
サーバー メンテナンス
Azure Managed Redis がフェールオーバーを経験すると、ダウンしたノードからのすべてのクライアント接続が、引き続き実行中のノードに転送されます。 接続が増加したため、CPU 使用率が急増する可能性があります。 クライアント アプリケーションの再起動を試みて、すべてのクライアント接続が再作成されて 2 つのノード間で再配布されるようにすることができます。
メモリ使用量が多い
サーバーのメモリ不足が原因で、さまざまなパフォーマンスの問題が発生して要求の処理が遅延する可能性があります。 メモリ不足が発生すると、システムによってデータがディスクにページングされ、システムの処理速度が大幅に低下します。
メモリ不足の原因として考えられるものを以下にいくつか示します。
- キャッシュに、その最大容量に近いデータが格納されている
- Redis サーバーでメモリの断片化が大量に発生している
負荷パターンが格納しているデータのサイズの変動が大きいとき、断片化が発生する可能性があります。 たとえば、データが 1 KB と 1 MB のサイズに分散されているとき、断片化が発生する可能性があります。 1 KB のキーが既存のメモリから削除されたとき、1 MB のキーをそこに収められないことで断片化が生じます。 同様に、1 MB のキーが削除されて 1.5 MB のキーが追加された場合、既存の再利用されているメモリに収めることができません。 これにより使用されない空きメモリが生じて、断片化が増えます。
used_memory_rss
値が used_memory
メトリックの 1.5 倍より大きい場合、メモリに断片化があります。 断片化が原因で問題が生じるのは次のようなときです。
- メモリ使用量がキャッシュの最大メモリ制限に近い。または
UsedMemory_RSS
が最大メモリ制限を超えていて、メモリでページ フォールトが発生する可能性がある。
キャッシュが断片化されていて大きなメモリ負荷で実行されている場合、システムはフェールオーバーを実行して RSS (Resident Set Size) メモリを回復しようとします。
Redis が 2 つの統計、used_memory
と used_memory_rss
を公開する際に使用する INFO コマンドは、この問題を特定するのに役立ちます。 ポータルを使用してこれらのメトリックを表示できます。
メモリ使用量を正常な状態に保つために実行できる、可能性のあるいくつかの変更を次に示します。
- メモリ ポリシーを構成 し、キーに有効期限を設定します。 断片化が発生している場合、このポリシーでは十分でない可能性があります。
- 潜在的な影響について早期に通知される、使用済みメモリなどのメトリックに関するアラートを作成します。
- メモリ容量の多いより大きいキャッシュ サイズにスケーリングします。 詳細については、「Azure Managed Redis 計画に関するよくあるご質問」を参照してください。
メモリ管理に関するおすすめ候補については、「メモリ管理」のベストプラクティスを参照してください。
実行時間の長いコマンド
詳細については、長期実行コマンドに関する記事を参照してください。
サーバー側の帯域幅の制限
詳細については、ネットワーク帯域幅の制限に関する記事を参照してください。