混在するワークロード (遅延の影響を受けやすいサービスとバックグラウンドのバッチジョブ) を実行する場合、より優先度の高いピアが CPU を必要としない場合にのみ CPU を消費するように、バッチ cgroup の優先度を下げる方法が必要です。Alibaba Cloud Linux 3 は、タスクごとの SCHED_IDLE スケジューリング ポリシーの cgroup レベルのアナログである cpu.idle インターフェイスを提供します。cgroup で cpu.idle を 1 に設定すると、アイドル優先度としてマークされます。これにより、cgroup は非アイドル状態のピアが実行可能でない場合にのみ CPU を競合します。この機能には、カーネルバージョン 5.10.134-16.al8 以降が必要です。
インターフェイスファイルの場所
cpu.idle インターフェイスファイルの場所は、cgroup バージョンによって異なります。
| cgroup バージョン | パス |
|---|---|
| cgroup v1 | /sys/fs/cgroup/cpu/$cg |
| cgroup v2 | /sys/fs/cgroup/$cg |
$cg は cgroup 名のプレースホルダーです。
cgroup の SCHED_IDLE の有効化または無効化
| インターフェイス | 値 | 効果 |
|---|---|---|
cpu.idle | 0 | cgroup の SCHED_IDLE スケジューリング ポリシーを無効にします。 |
cpu.idle | 1 | cgroup の SCHED_IDLE スケジューリング ポリシーを有効にします。cgroup は最小タイムスライス重みを受け取り、最小ランタイムは保証されなくなります。 |
制限事項
SCHED_IDLE を有効にする (つまり、cpu.idle を 1 に設定する) と、cgroup バージョンと SCHED_IDLE ポリシー間の非互換性により、次の副作用が発生します。
| cgroup バージョン | 制限事項 |
|---|---|
| cgroup v1 | cpu.shares インターフェイスは上書きできません。 |
| cgroup v2 | cpu.weight および cpu.weight.nice インターフェイスは上書きできません。 |