目标:控制一个程序的cpu和内存使用
简述:linux中有一个cgroup机制,通过将他挂载到vfs虚拟文件系统中进行配置,从而实现程序的资源控制。
systemd是cgroup的推荐配置方法,除此之外可以直接在cgroup配置文件中新建策略,通过添加pid的方式进行生效(/sys/fs/cgroup/cpu/test/xxx)
systemd的service文件中支持的命令可以通过
systemctl show xxx.service来获取,也可以通过systemctl set-property xxx.service MemoryMax=30G来进行实时配置并写入文件,其中如果不支持的参数,此处会报错
控制cpu使用率(消耗的cpu)
echo "1000 000" > /sys/fs/cgroup/cpu/test/cpu.cfs_period_us
echo "200 000" > /sys/fs/cgroup/cpu/test/cpu.cfs_quata_us
该配置对应systemd配置
CPUQuotaPeriodUSec=
CPUQuotaPerSecUSec=
控制cpu绑核
CPUAffinity=1-3,20-23