6.11. 高メモリー使用率のトラブルシューティング
以下のシナリオでは、メモリー使用率が高くなる可能性があります。
-
pmproxyプロセスは新しい PCP アーカイブの処理がビジーで、Redis の要求および応答を処理するための予備の CPU サイクルがありません。 - Redis ノードまたはクラスターが過負荷になり、時間が経過しても着信要求を処理できません。
pmproxy サービスデーモンは、Redis ストリームを使用し、設定パラメーター (PCP チューニングパラメーター) をサポートします。これは、Redis のメモリー使用量および鍵の保存に影響します。/etc/pcp/pmproxy/pmproxy.conf ファイルには、pmproxy で利用可能な設定オプションと、関連する API がリスト表示されます。
次の手順では、メモリー使用率が高い問題をトラブルシューティングする方法を説明します。
前提条件
pcp-pmda-redisパッケージをインストールします。yum install pcp-pmda-redis
# yum install pcp-pmda-redisCopy to Clipboard Copied! Toggle word wrap Toggle overflow redis PMDA をインストールします。
cd /var/lib/pcp/pmdas/redis && ./Install
# cd /var/lib/pcp/pmdas/redis && ./InstallCopy 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メトリックスを参照してください。