cgroup的使用方式有很多文档可循,下面记录了我使用(踩坑)过后觉得需要特别注意的.
-
release_agent(present in the root cgroup only)的使用
与notify_on_release搭配使用,可以使用release_agent来在tasks为空时释放cgroup -
cgroup.procs与tasks pid写入cgroup.procs,tid写入tasks,如果一个多线程的进程,只要将进程号写入cgroup.procs,tasks文件下就会自动有所有的线程号
-
在systemd系统下,有些systemd尚不支持的cgroup参数,可以参考这篇文章设置
https://access.redhat.com/solutions/1445073 -
测试io限流时,需要将页面缓存刷出去
~]# sync
~]# echo 3 > /proc/sys/vm/drop_caches
当前BLKIO子系统不统计buffered write操作,仅仅统计direct i/o的操作。但是buffered read是统计在内的。 -
cgroupv2在kernel4.5发布 v1和v2可以共存,但不能在两者中设置同一参数
-
进程启动时的cgroup继承其父进程
-
cgroup的blkio不支持分区限制
http://best.factj.com/digoal/blog/blob/master/201608/20160811_01.md
可以参考这个用LVM套一层 -
参考 https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt https://engineering.linkedin.com/blog/2016/08/don_t-let-linux-control-groups-uncontrolled https://segmentfault.com/a/1190000007241437