问题
有时候我们可能会遇到需要修改系统默认cgroup挂载点的情况,例如需要把cpu,cpuacct,cpuset挂载到一起的情况,但是有些操作系统(目前知道Ubuntu会出现这种问题)如果直接使用下面方法合并挂载cgroup的时候可能会遇到下面这种报错。
具体原因目前无法得知,很可能的原因是不同的操作系统版本限制。
但是我们可以换另外一种方式解决这个问题。
猜想
cgroup默认挂载是由systemd去划分挂载的,那么systemd的配置文件(/etc/systemd/system.conf)中应该也有相应的配置。查阅资料后发现确实如此。
点击查看ubuntu官方文档
官方文档中描述如下:
默认配置中cpu,cpuacct和net_cls,netprio这四个子系统为两两合并挂载,所以默认挂在方式就是我们所看到的下面这种:
验证
现在我们需要把cpu,cpuacct,cpuset挂载到一起,那么我们需要修改/etc/systemd/system.conf中JoinControllers中配置项。如下图所示。
接着reboot,再查看cgroup挂载点,已被修改为cpu,cpuscct,cpuset的形式。