Docker--资源控制管理

一、Docker–资源控制管理管理

1.1 Docker–资源控制管理管理

容器 = cgroup + namespace + rootfs + 容器引擎

(1)cgroup:资源控制
(2)namespace:访问隔离
(3)rootfs:文件系统隔离。镜像的本质就是一个 rootfs 文件
(4)容器引擎:生命周期控制

1.2 CPU控制

Cgroup 是 Control group 的简称,是 Linux 内核提供的一个特性,用于限制和隔离一组进程对系统资源的使用。对不同资源的具体管理是由各个子系统分工完成的。

1.2.1 Cgroup的优点

(1)资源限制:可以对任务使用的资源总额进行限制
(2)优先级分配:通过分配的 cpu 时间片数量以及磁盘 IO 带宽大小,实际上相当于控制了任务运行优先级
(3)资源统计:可以统计系统的资源使用量,如 cpu 时长,内存用量等
(4)任务控制:cgroup 可以对任务执行挂起、恢复等操作

1.2.2 CPU资源控制的三种方式

设置 CPU 使用率上限

[root@localhost ~]# docker ps -a							#查看容器状态
CONTAINER ID   IMAGE           COMMAND                  CREATED      STATUS                    PORTS                                               NAMES
228a9b43ff7b   centos:7        "/bin/bash"              3 days ago   Exited (0) 3 days ago                                                         test7
a09db8c18ca3   centos          "/bin/bash"              3 days ago   Exited (255) 3 days ago                                                       test6
2b3de9a8efe8   nginx           "/docker-entrypoint.…"   3 days ago   Exited (255) 3 days ago   80/tcp                                              test5
590162d14ba5   centos          "bash"                   3 days ago   Exited (255) 3 days ago                                                       test4
431ecd6d0eec   tomcat          "bash"                   3 days ago   Exited (255) 3 days ago                                                       test3
581f77fc4c7c   tomcat          "catalina.sh run"        3 days ago   Exited (255) 3 days ago   8080/tcp, 0.0.0.0:49110->80/tcp, :::49110->80/tcp   test2
95fffcb47dbb   tomcat          "catalina.sh run"        3 days ago   Exited (255) 3 days ago   0.0.0.0:49153->8080/tcp, :::49153->8080/tcp         test1
2d1f43c3d536   tomcat:latest   "/bin/bash"              3 days ago   Exited (137) 3 days ago                                                       reverent_banzai
[root@localhost ~]# docker start 228a9b43ff7b				#启动容器
228a9b43ff7b
[root@localhost ~]# docker ps -a							#容器已经启动
CONTAINER ID   IMAGE           COMMAND                  CREATED      STATUS                    PORTS                                               NAMES
228a9b43ff7b   centos:7        "/bin/bash"              3 days ago   Up 4 seconds                                                                  test7

#Linux 通过 CFS(Completely Fair Schedular,完全公平调度器)来调度各个进程对 CPU 的使用。CFS 默认的调度周期是100ms。我们可以设置每个容器进程的调度周期,以及在这个周期内各个容器最多能使用多少 CPU 时间。
#使用 --cpu-period 即可设置调度周期,使用 --cpu-quota 即可设置在每个周期内容器能使用的 CPU 时间。两者可以配合使用。
#cpu-period 和 cpu-quota 的单位为微秒。cpu-period 的最小值为 1000 微秒,最大值为 1 秒,默认值为 0.1 秒。
#cpu-quota 的值默认为 -1,表示不做控制。cpu-period 和 cpu-quota 参数一般联合使用。

[root@localhost ~]# cd /sys/fs/cgroup/cpu/docker/228a9b
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值