Linux cgroup(Control Groups)是一种强大的资源管理工具,它允许系统管理员对系统资源进行细粒度的控制。cgroup通过将进程分组并对这些组施加限制,从而实现资源的隔离和优先级控制。以下是一些cgroup的常见用法:
1. 限制资源使用:
- CPU:通过cpu子系统限制进程组的CPU使用率。
- 内存:使用memory子系统设置进程组的内存使用上限。
- 磁盘I/O:通过blkio子系统限制进程组的磁盘I/O带宽。
- 网络带宽:结合net_cls和net_prio子系统,可以控制网络带宽和优先级。
export MYGROUP=test_cg1
# 挂在cgroup文件系统
mount -t cgroup -o net_cls,net_prio cgroup /sys/fs/cgroup/net_cls
mount -t cgroup -o cpuset cgroup /sys/fs/cgroup/cpuset
# 查看已挂载的cgroup文件系统
mount -t cgroup
# 创建CGROUP组
cgcreate -g cpuset:${MYGROUP} -g cpu:${MYGROUP} -g cpuacct:${MYGROUP} -g blkio:${MYGROUP} -g memory:${MYGROUP} -g net_cls:${MYGROUP}
# CPU权重:shares=规格核数*1024
cgset -r cpu.shares=1024 ${MYGROUP}
# CPU配额:quota_us=