Cgroup變化分析
1 子系統
2.6.34 | 3.10 | 說明 |
Cpuset | Cpuset |
|
Ns |
| 掛載ns cgroup後,可以在創建新命名空間時自動創建新的cgroup,後來取消該子系統,cgroup和namespace解耦合。 |
Cpu | Cpu |
|
Cpuacct | Cpuacct |
|
Memory | Memory |
|
Device | Device |
|
Freezer | Freezer |
|
Net_cls | Net_cls |
|
Blkio | Blkio |
|
| Perf_event | 通過perf record -G name或者perf record --cgroup name,就可以profile那個cgroup的所有進程。 |
| Net_prio | 用戶設置網絡接口優先級的cgroup |
| Hugetlb | 實現cgroup對hugetlb的支持,可以限制cgroup中進程對hugetlb的使用量。 |
2 接口文件
(標紅的爲新增的可配置接口文件)
2.6.34 | 3.10 | 說明 |
blkio.sectors blkio.time blkio.weight | blkio.avg_queue_size blkio.dequeue blkio.empty_time blkio.group_wait_time blkio.idle_time blkio.io_merged blkio.io_merged_recursive blkio.io_queued blkio.io_queued_recursive blkio.io_service_bytes blkio.io_service_bytes_recursive blkio.io_serviced blkio.io_serviced_recursive blkio.io_service_time blkio.io_service_time_recursive blkio.io_wait_time blkio.io_wait_time_recursive blkio.leaf_weight blkio.leaf_weight_device blkio.reset_stats blkio.sectors blkio.sectors_recursive blkio.throttle.io_service_bytes blkio.throttle.io_serviced blkio.throttle.read_bps_device blkio.throttle.read_iops_device blkio.throttle.write_bps_device blkio.throttle.write_iops_device blkio.time blkio.time_recursive blkio.unaccounted_time blkio.weight blkio.weight_device | 2.6.34內核只能簡單的設置權重,3.10上增加了一些功能,比如對cgroup中具體的設備的設置、對設備讀寫帶寬和次數的限制等,也增加了更多設備讀寫相關信息的展示。 |
cgroup.event_control cgroup.procs | cgroup.clone_children cgroup.event_control cgroup.procs cgroup.sane_behavior | 新增了clone_children的配置,可以讓新建的cpuset子系統拷貝父cgroup的cpuset配置。 |
cpuacct.stat cpuacct.usage cpuacct.usage_percpu | cpuacct.stat cpuacct.usage cpuacct.usage_percpu |
|
cpu.rt_period_us cpu.rt_runtime_us cpu.shares | cpu.cfs_period_us cpu.cfs_quota_us cpu.rt_period_us cpu.rt_runtime_us cpu.shares cpu.stat | 3.10增加了對cfs調度的cpu時間管理的支持;增加了cpu運行的統計信息; |
cpuset.cpu_exclusive cpuset.cpus cpuset.mem_exclusive cpuset.mem_hardwall cpuset.memory_migrate cpuset.memory_pressure cpuset.memory_pressure_enabled cpuset.memory_spread_page cpuset.memory_spread_slab cpuset.mems cpuset.sched_load_balance cpuset.sched_relax_domain_level | cpuset.cpu_exclusive cpuset.cpus cpuset.mem_exclusive cpuset.mem_hardwall cpuset.memory_migrate cpuset.memory_pressure cpuset.memory_pressure_enabled cpuset.memory_spread_page cpuset.memory_spread_slab cpuset.mems cpuset.sched_load_balance cpuset.sched_relax_domain_level |
|
devices.allow devices.deny devices.list | devices.allow devices.deny devices.list |
|
| hugetlb.2MB.failcnt hugetlb.2MB.limit_in_bytes hugetlb.2MB.max_usage_in_bytes hugetlb.2MB.usage_in_bytes | 3.10增加了對hugetlb的使用限制(這裏的2M是設置的hugetlb大小) |
memory.failcnt memory.force_empty memory.limit_in_bytes memory.max_usage_in_bytes memory.memsw.failcnt memory.memsw.limit_in_bytes memory.memsw.max_usage_in_bytes memory.memsw.usage_in_bytes memory.move_charge_at_immigrate memory.soft_limit_in_bytes memory.stat memory.swappiness memory.usage_in_bytes memory.use_hierarchy | memory.failcnt memory.force_empty memory.kmem.failcnt memory.kmem.limit_in_bytes memory.kmem.max_usage_in_bytes memory.kmem.slabinfo memory.kmem.tcp.failcnt memory.kmem.tcp.limit_in_bytes memory.kmem.tcp.max_usage_in_bytes memory.kmem.tcp.usage_in_bytes memory.kmem.usage_in_bytes memory.limit_in_bytes memory.max_usage_in_bytes memory.memsw.failcnt memory.memsw.limit_in_bytes memory.memsw.max_usage_in_bytes memory.memsw.usage_in_bytes memory.move_charge_at_immigrate memory.numa_stat memory.oom_control memory.pressure_level memory.soft_limit_in_bytes memory.stat memory.swappiness memory.usage_in_bytes memory.use_hierarchy | 3.10增加了kmem的支持,可以設置內核內存的使用量;增加了對numa信息的顯示;增加了對cgroup oom和內存使用壓力的監控; |
net_cls.classid | net_cls.classid |
|
| net_prio.ifpriomap net_prio.prioidx | 增加了對網絡接口優先級的設置; |
notify_on_release release_agent tasks | notify_on_release release_agent tasks |
|
(一些相同的接口文件也有一些變化,比如增加了一些信息的顯示,如memory.stat;另外,對一些子系統如freeze增加的hierarchy的支持,這些變化對用戶影響不大,這裏不詳細展開列舉。)