前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker Notes-cgroups

Docker Notes-cgroups

作者头像
itliusir
发布2018-08-03 14:21:16
3650
发布2018-08-03 14:21:16
举报
文章被收录于专栏:刘君君刘君君

摘要: Docker Notes系列为学习Docker笔记,本文是学习cgroups 资源限制的笔记

正文:

上节我们了解了Docker背后的资源隔离技术namespace,本节介绍另一个内核工具cgroups。

cgroups作用

cgroups可以限制、记录、隔离进程组所使用的物理资源(包括:CPU、memory、IO等),为容器实现虚拟化提供了基本保证,是构建Docker等一系列虚拟化管理工具的基石

cgroups提供:

  • 资源限制 对进程组的资源使用限制,如对应用运行时使用内存的限制
  • 优先级 通过分配CPU的时间片数量和磁盘IO带宽大小
  • 资源统计 统计系统的资源使用量
  • 控制 对进程组挂起、恢复、重启动等操作
cgroups子系统

cgroups现在全称是control groups,它为每种可以控制的资源定义了一个子系统

  • blkio 可以限制块设备的输入输出,如磁盘、USB
  • cpu 可以限制进程的cpu 使用率
  • cpuacct 可以生成cpu 使用报告
  • cpuset 可以为cgroups中进程分配独立的CPU和内存
  • devices 可以控制进程对设备的访问
  • freezer 可以对进程进行挂起或恢复
  • memory 可以对进程的memory使用量进行限制,并生成内存资源使用情况报告
  • perf_event 可以对进程进行统一的性能测试
  • net_cls 可以使用classid标记网络包,然后Linux流量控制程序识别从具体cgroups中生成的数据包
docker组的层级结构

docker daemon会在每个子系统的控制组目录下创建一个叫docker的控制组,在这个组里为每一个容器创建一个容器id命名的容器控制组

  • 如cpu子系统层级结构
代码语言:javascript
复制
[root@cf /]# tree /sys/fs/cgroup/cpu/docker
/sys/fs/cgroup/cpu/docker
├── 69aa00d7aa3b6654b63280e66b671f509a3019a032ec5a09e299b793b37c6775
│   ├── cgroup.clone_children
│   ├── cgroup.event_control
│   ├── cgroup.procs
│   ├── cpuacct.stat
│   ├── cpuacct.usage
│   ├── cpuacct.usage_percpu
│   ├── cpu.cfs_period_us
│   ├── cpu.cfs_quota_us
│   ├── cpu.rt_period_us
│   ├── cpu.rt_runtime_us
│   ├── cpu.shares
│   ├── cpu.stat
│   ├── notify_on_release
│   └── tasks
├── cgroup.clone_children
├── cgroup.event_control
├── cgroup.procs
├── cpuacct.stat
├── cpuacct.usage
├── cpuacct.usage_percpu
├── cpu.cfs_period_us
├── cpu.cfs_quota_us
├── cpu.rt_period_us
├── cpu.rt_runtime_us
├── cpu.shares
├── cpu.stat
├── notify_on_release
└── tasks
  • 一些文件的作用
    • tasks
代码语言:javascript
复制
[root@cf 69aa00d7aa3b6654b63280e66b671f509a3019a032ec5a09e299b793b37c6775]# cat tasks 
29001
29058
29059
29060
代码语言:javascript
复制
[root@cf 69aa00d7aa3b6654b63280e66b671f509a3019a032ec5a09e299b793b37c6775]# cat cgroup.procs 
29001
代码语言:javascript
复制
[root@cf 69aa00d7aa3b6654b63280e66b671f509a3019a032ec5a09e299b793b37c6775]# cat cpuacct.stat
user 2435
system 4548
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正文:
    • cgroups作用
      • cgroups子系统
        • docker组的层级结构
        相关产品与服务
        容器镜像服务
        容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档