リクエスト(Request)と制限(Limit)
Request:コンテナによって使用される最小リソース要件です。コンテナのスケジューリング中にリソースアサインを判断する依存関係として使用されます。ノード上のアサイン可能なリソースの量>=コンテナリソースのリクエストの数の場合にのみ、コンテナをノードにスケジューリングできます。ただし、Requestパラメータは、コンテナの使用可能な最大リソース値を制限しません。
Limit:コンテナの使用可能な最大リソース値です。
注意:
LimitとRequestのパラメータの詳細については、詳細についてをクリックしてください。 CPU 制限の説明
CPUリソースでは、CPUリクエストとCPU制限のリソース量を設定できます。単位はコア(U)で、小数が許可されます。
注意:
CPU Requestは、スケジューリングの根拠として、作成時にコンテナのノードにCPU使用リソースをアサインします。これは、「アサインされたCPU」リソースと呼ばれます。
CPU LimitはコンテナCPUリソースの上限を制限します。設定されていない場合は、制限しないことを意味します(CPU Limit >= CPU Request)。
メモリ制限の説明
メモリリソースは、コンテナの使用可能なメモリの最大量を制限することのみが許可されています。単位はMiBで、小数が許可されます。
注意:
メモリRequestは、スケジューリングの根拠として、作成時にコンテナのノードにメモリをアサインします。これは、「アサインされたメモリ」リソースと呼ばれます。
メモリリソースはスケーリング不可のリソースです。ノード上のすべてのコンテナが過剰なメモリを使用する場合は、OOM(Out Of Memory、メモリオーバーフロー)のリスクがあります。したがって、Limitが設定されていない場合は、コンテナの通常の動作を保証するために、デフォルトではLimit = Requestです。
CPU使用量とCPU利用率
CPU使用量は絶対値であり、実際に使用されているCPUの物理コア数を示します。CPUリソースリクエストとCPUリソース制限の両方とも、CPU使用量に基づいて判断されます。
CPU利用率は相対値であり、CPUシングルコアに対するCPU使用量の比率(ノード上のCPUコアの総数に対する比率)を示します。
ユースケース
簡単な例でRequestとLimitの作用を説明します。テストクラスターには、1つの4U4Gノード、デプロイされた2つのPod(Pod1、Pod2)が含まれています。各Podのリソースは(CPU Request,CPU Limit,Memory Request,Memory Limit)=(1U,2U,1G,1G)に設定されています。(1.0G = 1000MiB)
ノード上のCPUとメモリのリソース使用状況は下図の通りです:
アサインされたCPUリソースは1U(Pod1をアサイン) + 1U(Pod2をアサイン) = 2Uで、アサイン可能な残りのCPUリソースは2Uです。
アサインされたメモリリソースは1G(Pod1をアサイン) + 1G(Pod2をアサイン) = 2Gで、アサイン可能な残りのメモリリソースは2Gです。
したがって、ノードは、別の1つの(CPU Request、Memory Request)=(2U、2G)のPodデプロイをデプロイするか、または2つの(CPU Request、Memory Request)=(1U、1G)のPodデプロイをデプロイできます。 リソース制限に関しては、各Pod1とPod2が使用するリソースの上限は(2U、1G)です。つまり、リソースがアイドル状態のとき、Podが使用するCPUの最大量は2Uに達する可能性があります。
サービスリソース制限の推奨事項
CCSは、現在のコンテナイメージの過去のロードに基づいて、リクエスト値と制限値を推奨します。推奨値を使用すると、コンテナがよりスムーズに実行され、異常の可能性が大幅に減少します。
推奨アルゴリズム:
まず、過去7日間の現在のコンテナイメージの分レベルのロードを取り出し、パーセンタイル統計の95%値を追加して、推奨されるRequestを最終的に決定します。LimitはRequestの2倍です。
Request = Percentile(実際ロード[7d]、0.95)
Limit = Request * 2
現在のサンプル数(実際ロード)が推奨される計算数の要件を満たしていない場合は、それに応じてサンプル値の範囲を拡大し、再計算を試みます。例えば、イメージtag,namespace,serviceNameなどのフィルタリング条件を削除します。複数の計算を行っても有効値が得られない場合、推奨値はNULLとします。
推奨値がNULL:
使用中に、一部の値が推奨されていない場合があります。これは、次の点が原因である可能性があります:
1. 現在のデータは計算のニーズを満たしていません。計算されるサンプル数(実際ロード)は1440、つまり1日のデータを超える必要があります。
2. 推奨値は現在のコンテナに構成されたRequestまたはLimitより小さくします。
注意:
1. 推奨値は過去のロードに基づいて計算されるため、原則として、コンテナイメージが実際のビジネスを実行する時間が長いほど、推奨値はより正確になります。
2. 推奨値を使用してサービスを作成する場合は、クラスターリソースが不十分なため、コンテナが正常にスケジューリングされない場合があります。保存するとき、現在のクラスターの残りのリソースを確認する必要があります。
3. 推奨値は提案された値であり、実際のサービス状況に応じて調整できます。