5.12. 高メモリー使用率のトラブルシューティング
以下のシナリオでは、メモリー使用率が高くなる可能性があります。
-
pmproxy
プロセスは新しい PCP アーカイブの処理がビジーで、Redis の要求および応答を処理するための予備の CPU サイクルがありません。 - Redis ノードまたはクラスターが過負荷になり、時間が経過しても着信要求を処理できません。
pmproxy
サービスデーモンは、Redis ストリームを使用し、設定パラメーター (PCP チューニングパラメーター) をサポートします。これは、Redis のメモリー使用量および鍵の保存に影響します。/etc/pcp/pmproxy/pmproxy.conf
ファイルには、pmproxy
で利用可能な設定オプションと、関連する API がリスト表示されます。
次の手順では、メモリー使用率が高い問題をトラブルシューティングする方法を説明します。
前提条件
pcp-pmda-redis
パッケージをインストールします。dnf install pcp-pmda-redis
# dnf install pcp-pmda-redis
Copy to Clipboard Copied! Toggle word wrap Toggle overflow redis PMDA をインストールします。
cd /var/lib/pcp/pmdas/redis && ./Install
# cd /var/lib/pcp/pmdas/redis && ./Install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
高いメモリー使用率のトラブルシューティングを行うには、次のコマンドを実行して、
inflight
列を確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この列は、Redis リクエストが転送中である数を示しています。つまり、キューに入れられているか送信されており、現時点では応答は受信されていません。
数値が高い場合は、次のいずれかの状態を示します。
-
pmproxy
プロセスは新しい PCP アーカイブの処理がビジーで、Redis の要求および応答を処理するための予備の CPU サイクルがありません。 - Redis ノードまたはクラスターが過負荷になり、時間が経過しても着信要求を処理できません。
-
メモリー使用量が多い問題のトラブルシューティングを行うには、このファームの
pmlogger
プロセスの数を減らし、別の pmlogger ファームを追加します。統合型 (複数の pmlogger ファームの設定) を使用します。Redis ノードが長時間にわたって CPU を 100% 使用している場合は、パフォーマンスが向上しているホストに移動するか、代わりにクラスター化された Redis 設定を使用します。
pmproxy.redis.*
メトリックスを表示するには、次のコマンドを使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow インフライトのリクエスト数を表示するには、
pmproxy.redis.requests.inflight.total
メトリックスとpmproxy.redis.requests.inflight.bytes
メトリックスを参照して、現在のすべてのインフライトの Redis リクエストで占有されているバイト数を表示します。通常、redis 要求キューは 0 ですが、大きな pmlogger ファームの使用量に基づいて構築できます。これによりスケーラビリティーが制限され、
pmproxy
クライアントのレイテンシーが高くなる可能性があります。pminfo
コマンドを実行すると、パフォーマンスメトリックスの詳細が表示されます。たとえば、redis.*
メトリックスを表示するには、次のコマンドを使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ピークメモリー使用量を表示するには、
redis.used_memory_peak
メトリックスを参照してください。