次の方法で共有


AKS クラスターでの高い CPU 使用率のトラブルシューティング

CPU 使用率が高いとは、コンピューターのパフォーマンスや使いやすさに影響を与えるほど多くの CPU 時間を必要とする 1 つ以上のアプリケーションまたはプロセスの症状です。 高い CPU 使用率はさまざまな方法で発生する可能性がありますが、主にユーザーの構成が原因です。

Azure Kubernetes Service (AKS) クラスター内のノードで CPU 使用率が高くなる場合、そのノードで実行されているアプリケーションのパフォーマンスと信頼性が低下する可能性があります。 アプリケーションやプロセスも不安定になり、応答が遅くなる以上の問題が発生する可能性があります。

この記事では、CPU 使用率が高いノードとコンテナーを特定し、高い CPU 使用率を解決するためのベスト プラクティスを提供します。

現象

次の表は、CPU 使用率が高い一般的な現象の概要を示しています。

現象 説明
CPU の不足 CPU 負荷の高いアプリケーションでは、同じノード上の他のアプリケーションの速度が低下します。
状態の変化が遅い ポッドの準備には時間がかかる場合があります。
NotReady ノードの状態 ノードが NotReady 状態になります。 この問題は、CPU 使用率が高いコンテナーによって Kubectl コマンド ライン ツールが応答しなくなるために発生します。

トラブルシューティングのチェックリスト

CPU 使用率の高い問題を解決するには、効果的な監視ツールを使用し、ベスト プラクティスを適用します。

手順 1: CPU 使用率が高いノード/コンテナーを特定する

CPU 使用率が高いノードとコンテナーを識別するには、次のいずれかの方法を使用します。

  • Web ブラウザーで、Azure portal で AKS の Container Insights 機能を使用します。

  • コンソールで、Kubernetes コマンド ライン ツール (kubectl) を使用します。

Container Insights は AKS 内の機能です。 コンテナー ワークロードのパフォーマンスを監視するように設計されています。 Container Insights を使用して、CPU 使用率の高いノード、コンテナー、またはポッドを特定できます。

CPU 使用率が高いノード、コンテナー、またはポッドを特定するには、次の手順に従います。

  1. Azure ポータルからクラスターに移動

  2. [監視][分析情報] を選択します。

    Insights の下の監視のスクリーンショット

  3. 適切な Time 範囲を設定します。

    6 時間の時間範囲のスクリーンショット。

  4. CPU 使用率が高いノードを見つけ、ノードの CPU 使用率が安定しているかどうかを確認します。

    [ノード] を選択します。 MetricCPU Usage (millicores)に設定し、サンプルを Max に設定します。 Max の並べ替え機能を使用して、ノードを Max% 順に並べ替えます。 CPU 使用率が最も高いノードが上部に表示されます。

    次のスクリーンショットでは、ノードは最大 CPU の 12% のみを使用し、16 日間実行されています。

    [監視] 選択の下の [ノード] のスクリーンショット。

  5. CPU 使用率が高いノードを見つけたら、ノードを選択してポッドとその CPU 使用率を検索します。

    [監視] 選択の下にあるポッドの分析情報オプションのスクリーンショット。

    Note

    ポッドの CPU またはメモリ使用量の割合は、コンテナーに指定された CPU 要求に基づいています。 ノードの CPU またはメモリ使用量の割合は表しません。 そのため、ポッドの CPU またはメモリ使用量の割合ではなく、実際の CPU またはメモリ使用量を確認します。

    CPU 使用率が高いポッドの一覧を取得したら、CPU 使用率の急増の原因となるアプリケーションにマップできます。

手順 2: 高い CPU 使用率を回避するためのベスト プラクティスを確認する

高い CPU 使用率を回避するためのベスト プラクティスを実装する方法については、次の表を参照してください。

ベスト プラクティス 説明
コンテナーに適切な制限を設定する Kubernetes では、コンテナーのリソースに対する要求と制限を指定できます。 リソースの要求と制限は、コンテナーで使用できるリソースの最小数と最大数を表します。 適切な要求と制限を設定して、ポッドごとに適切な Kubernetes サービスの品質 (QoS) クラスを選択することをお勧めします。
ポッドの水平オートスケーラー (HPA) を有効にする 適切な制限を設定すると共に HPA を有効にすると、高 CPU 使用率の解決に役立ちます。
上位の SKU VM を選択する 高い CPU ワークロードを処理するには、より上位の SKU VM を使用しましょう。 これを行うには、新しいノード プールを作成し、ノードを遮断してそれらをスケジュール不可にし、既存のノード プールをドレインします。
システム ワークロードとユーザー ワークロードを分離する ワークロードを実行するために、(エージェント プール以外の) 別のノード プールを作成することをお勧めします。 これにより、システム ノード プールの過負荷を防ぎ、パフォーマンスを向上させることができます。

関連情報

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。