写在前面
CPU子系统通过CFS、RT两个调度程序来实现控制组对CPU使用的管理。
- 完全公平调度程序(CFS) — 根据进程优先级 ∕ 权重或控制组分配CPU使用的调度程序,在控制组间按比例分配 CPU时间(CPU 带宽)。
- 实时调度程序(RT) — 对实时进程使用 CPU 的时间进行限定。
一、CFS参数配置
1.1 cpu.shares
设置控制组中CPU可用时间的相对比例。参数值为大于等于2的整数。例如:在两个不同控制组,但cpu.shares=100的进程,获得的CPU时间是相同的。在一个控制组内cpu.shares=200的进程获得CPU时间是cpu.shares=100进程的两倍。
多核系统中,CPU时间比例是在所有CPU核心中分配的。例如系统中由一个4核CPU,其中控制组A获得25%的CPU,控制组B获得75%的CPU;如果此时启动4个大量消耗CPU的进程,(一个在控制组A,三个在控制组B),极端条件CPU耗尽的情况下,会得到下面的CPU分配结果: