本实践的主要操作请参照
参考链接
进行。
由于在实践中主要想完成的目标是限制服务器中用户/用户组的内存使用,防止某个用户占用过多的cpu/内存导致其他用户无法正常使用甚至服务器宕机,因此需要手动加cgexec
指令的实验1 就不在我的考虑范围中,主要针对的是实验2,即写入系统配置文件的处理方式。
由于参考连接中的系统是CentOS,所以部分操作不一样,走了写弯路,特此记录。
首先ubuntu下使用如下指令安装:
sudo apt install libcgroup*
安装完成后,需要增加配置文件,但ubuntu系统中本身并未自带cgconfig.conf与cgrules.conf文件,需要在超级用户权限下手动创建:
touch /etc/cgconfig.conf
touch /etc/cgrules.conf
随后两个文件的使用方法与参考链接的方式一致。
在配置文件完成后,我们还需要使用指令应用配置:
cgconfigparser -l /etc/cgconfig.conf
应用完成后还需要手动执行管理程序,在ubuntu中cgroup并没有单独注册为服务,启动指令如下:
cgrulesengd
启动完成后可以通过cat /proc/[进程id]/cgroup
查看cgroup状态信息,可以查看想要限制的进程里的cgroup状态中是否进了对应的限制组中。
确认部署完成后,可以将cgrulesengd 添加到系统自启动中。
后记:本文所叙述的方式应该是cgroup-v1的运行逻辑,当前较新的linux发行版默认都会使用的cgroup-v2作为管理方式,交由systemd接管cgroup规则,但由于目前网上v2的资料较少,使用cgroup-v2可能会带来更多的学习成本,因此就为了实用性而言 就使用旧版的v1了