CPU バースト機能により、速度制限されたコンテナが一時的に追加の CPU リソースを利用できるようになり、パフォーマンスが向上し、レイテンシが低減します。Alibaba Cloud Linux 2(カーネルバージョン 4.19.91-22.al7 以降)および Alibaba Cloud Linux 3 は、cgroup v1 インターフェイス上で CPU バーストをサポートしています。
CPU バーストについては、「厄介な CPU スロットルを解消する方法」で詳しく説明されています。
CPU バーストの有効化
-
CPU バーストのグローバルスイッチが有効になっているか確認します。
cat /proc/sys/kernel/sched_cfs_bw_burst_enabled出力結果:
-
1:グローバルスイッチが有効です。説明グローバルスイッチはデフォルトで有効になっています。
-
その他の値:グローバルスイッチが無効です。
有効にするには、次のコマンドを実行します。
sudo sh -c 'echo 1 > /proc/sys/kernel/sched_cfs_bw_burst_enabled'
-
-
特定の子 cgroup で CPU バーストを有効にします。
説明CPU バーストは、すべての子 cgroup でデフォルトで無効になっています。
-
子 cgroup ディレクトリに移動し、Completely Fair Scheduler (CFS) 帯域幅コントローラーによる速度制限がアクティブかどうかを確認します。
<cgroup>はご利用の子 cgroup 名に置き換えてください。cd /sys/fs/cgroup/cpu/<cgroup>/ cat cpu.cfs_period_us cat cpu.cfs_quota_us正の戻り値は、CFS 帯域幅コントローラーによる速度制限がアクティブであることを示します。CPU バーストを有効にすると、コンテナは CPU 制限を超えて利用できます。
-
現在の CPU バーストのデフォルト設定を確認します。
cat cpu.cfs_burst_usデフォルト値
0は、CPU バーストが無効であることを意味します。 -
cpu.cfs_burst_usに値を設定して、CPU バーストを有効にします。このパラメーターには、子 cgroup がバースト時に使用できる最大追加 CPU リソース量を示す正の整数を設定します。例を以下に示します。
-
CFS 帯域幅コントローラー用に
cpu.cfs_quota_usおよびcpu.cfs_period_usを設定します。これにより、
cpu.cfs_period_usが 100 ms、cpu.cfs_quota_usが 400 ms に設定され、子 cgroup に安定した 4 CPU 分の割り当て(cpu.cfs_quota_us/cpu.cfs_period_us)が与えられます。sudo sh -c 'echo 400000 > cpu.cfs_quota_us' sudo sh -c 'echo 100000 > cpu.cfs_period_us' -
cpu.cfs_burst_usを設定して CPU バーストを有効にします。これにより、
cpu.cfs_burst_usが 600 ms に設定され、子 cgroup が最大で追加 6 CPU 分(cpu.cfs_burst_us/cpu.cfs_period_us)までバーストできるようになります。sudo sh -c 'echo 600000 > cpu.cfs_burst_us'
-
-
CPU バースト統計情報の照会
対象の子 cgroup ディレクトリに移動し、統計情報を表示します。
<cgroup> はご利用の子 cgroup 名に置き換えてください。
cd /sys/fs/cgroup/cpu/<cgroup>/
cat cpu.stat
主な出力フィールド:
-
nr_burst:CPU バーストのトリガー回数。 -
burst_time:子 cgroup がバースト時に追加 CPU リソースを使用した合計時間。