CPU:

​ CPU Cgroup 是 Cgroups 其中的一个 Cgroups 子系统,它是用来限制进程的 CPU 使用的。

限制的是用户态的CPU us和ni,对内核态不限制sy、wa、hi、si

目录:/sys/fs/cgroup/cpu

重要参数:

k8s资源限制示例:

      resources:
limits:
cpu: 200m
memory: 170Mi
requests:
cpu: 100m
memory: 70Mi

通过dockr ps找到目录,然后查询


cd /sys/fs/cgroup/cpu/
find . -name "*67ea4b49450c*"
cd /sys/fs/cgroup/cpu/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod102e9626_1afa_4cad_a810_f513d80018be.slice/docker-67ea4b49450cc33fd87c52121df77a3fb636ce21934e0183ca539d86a191bbf5.scope

# requests相关配置
cpu.shares # 值为102 折合下来就是100m
# limits相关
cpu.cfs_period_us # 100000
cpu.cfs_quota_us # 20000
limit = cpu.cfs_quota_us/cpu.cfs_quota_us = 0.2 = 200m

内存

​目录:/sys/fs/cgroup/memory

​重要参数

memory.limit_in_bytes:限制控制组所有进程可使用内存的最大值
memory.oom_control :当控制组内存达到上限时,这个参数决定是否触发OOM,默认杀死,可以更改为1不杀死
memory.usage_in_bytes:只读参数,当里面数值和memory.limit_in_bytes越接近,OOM kill几率越高
memory.soft_limit_in_bytes: 这个限制不会阻止进程超过限制内存,只是在系统内存足够时候,会优先回收