博文源地址:https://blog.csdn.net/hobertony_7/article/details/49977645
1, lssubsys -am 查看系统中已经存在的参cgroup子系统以及子系统的挂载点:
cpuset /sys/fs/cgroup/cpuset
cpu,cpuacct /sys/fs/cgroup/cpu,cpuacct
memory /sys/fs/cgroup/memory
devices /sys/fs/cgroup/devices
freezer /sys/fs/cgroup/freezer
net_cls /sys/fs/cgroup/net_cls
blkio /sys/fs/cgroup/blkio
perf_event /sys/fs/cgroup/perf_event
hugetlb /sys/fs/cgroup/hugetlb
cpu,cpuacct /sys/fs/cgroup/cpu,cpuacct
memory /sys/fs/cgroup/memory
devices /sys/fs/cgroup/devices
freezer /sys/fs/cgroup/freezer
net_cls /sys/fs/cgroup/net_cls
blkio /sys/fs/cgroup/blkio
perf_event /sys/fs/cgroup/perf_event
hugetlb /sys/fs/cgroup/hugetlb
memory /sys/fs/cgroup/memory
2, 命令行挂载和卸载子系统:
# umount /sys/fs/cgroup/memory/
执行后lssubsys -am 就不会看到memory 子系统的挂载点了
#mount -t cgroup -o memory memory111 /sys/fs/cgroup/memory/
在这条命令中 memory是要挂载的cgroup子系统名称, memory111 是在/proc/mounts文件中显示的名称
#cat /proc/mounts就会看到一行 memory111 /sys/fs/cgroup/memory cgroup rw,relatime,memory 0 0
3, 在linux系统中有/etc/cgconfig.conf 文件,在这个文件里面可以创建自动开机自动启动的挂载条目:
mount {#定义需要创建的cgroup子系统及其挂载点,这里创建cpu与cpuacct(统计)两个cgroup子系统
cpu = /mnt/cgroups/cpu;
cpuacct = /mnt/cgroups/cpu;
}
4, 命令行创建控制组群:
#cgreate -g memory:/test
运行后就会在memory挂载目录下/sys/fs/cgroup/memory/ 目录下看到一个新的目录test,这个就是新创建的memory子控制组群
#cgdelete -g memory:/test
运行后就会删除memory的子控制组群test
5,设置组群参数:
假设 存在/sys/fs/cgroup/cpuset/test 组群
#cgset -r cpuset.cpus=0-1 test
#cat /sys/fs/cgroup/cpuset/test/cpuset.cpus
0-1
6, 将某个进程移动到控制组群中
假设 存在/sys/fs/cgroup/cpuset/test 组群
cgclassify -g subsystems:path_to_CGROUPS pidlist
# ps aux | grep sshd
root 871 0.0 0.0 82508 3600 ? Ss 12:47 0:00 /usr/sbin/sshd -D
得到进程号871,通过cgclassify把进程加入到/sys/fs/cgroup/test 组群中,命令如下:
# cgclassify -g cpuset:/test 871
# cat /sys/fs/cgroup/cpuset/test/tasks 就会看到871进程在这个文件下