cpuset子系统
为一组指定的进程分配指定的cpu和内存节点。在NUMA架构的服务器上,通常将进程与指定的cpu和内存节点绑定来达到,提升性能。(具体是怎么提升的有待学习)。
在这里只介绍主要的2个接口,其余的有时间可以进行深入了解
1. cpuset.cpus:允许进程使用的cpu列表
2. cpuset.mems:允许进行使用的内存节点列表(cpu还是理解的但是内存节点????和内存寻址有关系吗??)
姑且还是看一下cpuset的接口(控制文件)
[root@VM_116_112_centos child]# ls
cgroup.clone_children cpuset.cpu_exclusive cpuset.mem_hardwall cpuset.memory_spread_page cpuset.sched_load_balance tasks
cgroup.event_control cpuset.cpus cpuset.memory_migrate cpuset.memory_spread_slab cpuset.sched_relax_domain_level
cgroup.procs cpuset.mem_exclusive cpuset.memory_pressure cpuset.mems notify_on_release
cpu子系统
用于限制进行的cpu占用比率。
1. cpu比重分配:cpu.shares。举个例子
cd /sys/fs/cgroup/cpu
mkdir test1
创建cgroup test1
mkdir test2
创建cgroup test2
cd test1
echo 1024 > cpu.shares
cd test2
echo 512 > cpu.shares
设置完毕后当test1和test2中的进程争抢cpu资源时,test1中将获得比test2中多一倍的cpu占用比率,这只有当争抢cpu时才有效。
2. cpu带宽限制:cpu.cfs_period_us和cpu.cfs_quota_us接口(控制文件),单位是微秒。举个例子,我将test1中的period设为1000000(1秒),quota设为500000(0.5秒),那么test1中的进程在1秒