要实现linux限制进程上限的功能,需要用到Cgroups技术,它的全程Linux Control Group,用于限制一个进程组能够使用的资源(CPU、内存、磁盘、网络带宽)上限,还能够对进程进行优先级设置,以及进行将进程挂起恢复的操作。
Cgroups给用户暴露出来的操作接口是文件系统,以目录和文件的方式组织在/sys/fs/cgroup
路径下。
执行ls /sys/fs/cgroup
命令可以看到如下文件列表
root@ubuntu:$ ls /sys/fs/cgroup
blkio cpuacct cpuset freezer memory net_cls,net_prio perf_event rdma unified
cpu cpu,cpuacct devices hugetlb net_cls net_prio pids systemd
代表了可操作的各种资源
以cpu资源为例,查看cpu
目录,执行ls /sys/fs/cgroup/cpu
可以看到如下列表
root@ubuntu:$ ls /sys/fs/cgroup/cpu
cgroup.clone_children cpuacct.usage_all cpuacct.usage_user notify_on_release user.slice
cgroup.procs cpuacct.usage_percpu cpu.cfs_period_us release_agent
cgroup.sane_behavior cpuacct.usage_percpu_sys cpu.cfs_quota_us system.slice
cpuacct.s