異なるcpu.cfs_period_us値の違いは何ですか?

異なるcpu.cfs_period_us値の違いは何ですか?

cpu.cfs_period_usカーネル[1]文書を読んでいますが、この部分は混乱しています。

3. Limit a group to 20% of 1 CPU.

    With 50ms period, 10ms quota will be equivalent to 20% of 1 CPU.

    # echo 10000 > cpu.cfs_quota_us /* quota = 10ms */
    # echo 50000 > cpu.cfs_period_us /* period = 50ms */

    By using a small period here we are ensuring a consistent latency
    response at the expense of burst capacity.

「ピリオドを使用」は違いが何であるかは明らかではありません。

どういう意味ですかensuring a consistent latency response at the expense of burst capacity

[1]https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt

ベストアンサー1

グループのCPU帯域幅の消費がその期間にこの制限[割り当て量]を超えると、その階層に属するタスクは制限され、次の期間まで再実行は許可されません。

私が言いたいのは、1分でCPU時間を10秒に設定すると、その時間を超えるため、アプリケーションが50秒間停止する可能性があることを指摘することです。最大電力で10秒間連続動作し、50秒間動作しません。これは、できるだけ早く非常に集中的な計算が必要なアプリケーションに役立ちます。時々。

一方、非常に低く設定すると(たとえば、500usのうち50us)、アプリケーションは0.05msの間だけ実行され、0.45msの後に停止して再起動します。 50usのバーストはバーストではありません:) ...しかし、アプリケーションは最大0.45msの間停止します。これは計算集約的ではありませんが、アプリケーションが制限される時間に応じて待機時間が増えるため、待ち時間が非常に低くなければならないアプリケーションがある場合に便利です。

(意図的に不均衡な数字を使用)

おすすめ記事