使用cgroup纪要

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

转载于:https://my.oschina.net/u/3211934/blog/1545933

你可能感兴趣的:(使用cgroup纪要)