首页 Docker教程Docker-cgroup介绍

Docker-名称空间Namespace技术

docker-容器管理工具

运维派隶属马哥教育旗下专业运维社区,是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai
领取学习更多免费Linux云计算、Python、Docker、K8s教程关注公众号:马哥linux运维

Linux control groups

在一个容器,如果不对其做任何资源限制,则宿主机会允许其占用无限大的内存空间,有时候会因为代码bug程序会一直申请内存,直到把宿主机内存占完,为了避免此类的问题出现,宿主机有必要对容器进行资源分配限制,比如CPU、内存等,Linux Cgroups的全称是Linux Control Groups,它最主要的作用,就是限制一个进程组能够使用的资源上限,包括CPU、内存、磁盘、网络带宽等等。此外,还能够对进程进行优先级设置,以及将进程挂起和恢复等操作。

验证系统cgroups

Cgroups在内核层默认已经开启,从centos和ubuntu 对比结果来看,显然内核较新的ubuntu 支持的功能更多。

Centos 8.1 cgroups:

Centos 7.6 cgroups:

ubuntu cgroups:

cgroups 中内存模块:

cgroups具体实现
  • blkio:块设备IO限制
  • cpu:使用调度程序为 cgroup 任务提供 cpu 的访问
  • cpuacct:产生 cgroup 任务的 cpu 资源报告
  • cpuset:如果是多核心的 cpu,这个子系统会为 cgroup 任务分配单独的 cpu 和内存
  • devices:允许或拒绝 cgroup 任务对设备的访问
  • freezer:暂停和恢复 cgroup 任务
  • memory:设置每个 cgroup 的内存限制以及产生内存资源报告
  • net_cls:标记每个网络包以供 cgroup 方便使用
  • ns:命名空间子系统
  • perf_event:增加了对每 group 的监测跟踪的能力,可以监测属于某个特定的 group 的所有线程以及运行在特定CPU上的线程
查看系统cgroups

本文链接:http://www.yunweipai.com/34747.html

Docker-名称空间Namespace技术

docker-容器管理工具

网友评论comments

发表评论

电子邮件地址不会被公开。

暂无评论

Copyright © 2012-2020 YUNWEIPAI.COM - 运维派
扫二维码
扫二维码
返回顶部