CSDN话题挑战赛第2期
参赛话题:万家争鸣的云计算修罗场
我想分享的云计算技能/知识点
认识 Cgroup
该技能/知识点的背景介绍
Cgro叩是control groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组(process gro叩s)所使用的物理资源(如:CPU,内存,Ю等等)的机制。它最初由Google的工程师提出, 后来被整合进Linux内核。Cgro叩也是LXC为实现虚拟化所使用的资源管理手段,因此可以说没有 Cgroup 就没有 LXC。
目前,Cgro叩有一套进程分组框架,不同资源由不同的子系统控制。一个子系统就是一个资源 控制器,比如CPU子系统就是控制CPU时间分配的ー个控制器。子系统必须附加(attach )到ー个 层级上才能起作用,一个子系统附加到某个层级以后,这个层级上的所有控制族群(control gro叩) 都受这个子系统的控制
该技能/知识点实际运用
Cgro叩各个子系统的作用如下。
- Blkio:为块设备设定输入/输出限制,比如物理设备(磁盘、固态硬盘、USB,等等)。
- Cpu:提供对CPU的Cgro叩任务访问〇
- Cpuacct:生成Cgroup中任务所使用的CPU报告。
- Cpuset:为Cgroup中的任务分配独立的CPU (在多核系统)和内存节点。
- Devices:允许或者拒绝Cgroup中的任务访问设备。
- Freezer:挂起或者恢复Cgro叩中的任务。
- Memory:设定Cgro叩中任务使用的内存限制,并自动生成由那些任务使用的内存资源报告。
- Net_cls:使用等级识别符(classid )标记网络数据包,可允许Linux流量控制程序(tc )识 别从具体Cgroup中生成的数据包。
- Net_prio :设置进程的网络流量优先级。
- Huge_tlb:限制 HugeTLB 的使用。
- Perf^event:允许Perf工具基于Cgro叩分组做性能监测。
这样说理解起来也很吃カ,下面就通过命令来挂载Cgro叩fs:
root^ops-admin:mount -t cgroup -о cpuset cpuset /sys/fs/cgroup/cpuset
总结
这个动作一般情况下已经在Linux启动时候做了。查看Cgroupfs:
root@ops-admin:cpuset | Is |
cgroup,clone children | cpuset.memory_pressure_enabled |
cgroup.procs | cpuset.memory_spread_page |
cgroup.sane_behavior | cpuset.memory_spread_slab |
cpuset *cpu__exclusive | cpuset.mems |
cpuset.cpus | cpuset.sched_load_balance |
cpuset.effective_cpus | cpuset.sched_relax_domain_level |
cpuset.effective_mems | docker |
cpuset.mem_exclusive | notify_on_release |
cpuset.mem_hardwall | release_agent |
cpuset.memory_migrate | tasks |
cpuset.memory_pressure |
提醒:在发布作品前请把不用的内容删掉