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の間停止します。これは計算集約的ではありませんが、アプリケーションが制限される時間に応じて待機時間が増えるため、待ち時間が非常に低くなければならないアプリケーションがある場合に便利です。
(意図的に不均衡な数字を使用)