网站开发培训实训手机网站备案
web/
2025/10/6 8:24:18/
文章来源:
网站开发培训实训,手机网站备案,网站制作上海市,沧州网络运营中心docker的资源控制
对容器使用宿主机的资源进行限制。
三种控制方向#xff1a;CPU 内存 磁盘I/O
docker使用linux自带的功能cgroup#xff1b;control groups是linux内核系统提供的一种可以限制记录#xff0c;隔离进程所使用的物理资源机制。 docker借助此…docker的资源控制
对容器使用宿主机的资源进行限制。
三种控制方向CPU 内存 磁盘I/O
docker使用linux自带的功能cgroupcontrol groups是linux内核系统提供的一种可以限制记录隔离进程所使用的物理资源机制。 docker借助此机制来实现资源的控制。 cgroup本身是提供进程进行分组化管理的功能和接口的基础架构。分配控制的机制来实现资源控制。 host容器与主机共用一个网络命名空间。 container容器和容器之间共用一个网络空间其他资源依然是隔离的。 限制容器对cpu的使用
限制方向
容器占用cou的时间。 容器占用cpou的权重比 (多个容器时才有效)。 容器占用cou的内核数绑定指定cpu内核给容器使用。 设置cpu使用周期
linux通过CFS(Completely Fair Scheduler完全公平调度器)来调度各个进程的CPU的使用。 调度周期100ms 也可以手动设置这个周期已经在这个周期时间之内各个容器能够使用cpu的调度时间。、 --cpu-period 设置容器调度cpu的周期 --cpu-quota 设置在每个周期内容器可以使用cpu的时间。 可以配合使用CFS周期的有效范围1ms-1s --cpu-period 1000~1000000 容器使用cpu的配额时间必须大于1ms--cpu-quota的值必须是10001ms
容器存储位置 cd /sys/fs/cgroup/cpu/容器的id cpu.rt_period_us ------100000CFS调度周期的长度单位微妙 在每个周期内容器可以使用指定比例的cpu时间默认情况都是100毫秒
cpu.cfs_quota_us -------(-1)如果配置是-1那么容器在使用宿主机cpu的时间不做任何限制。
CFS调度器100毫秒就是定义了一个周期在这个周期内调度任务(容器)的基本时间单位。
大白话
100ms一次调度请求cpu的资源然后内核把cpu资源分配给容器。cpu.rt_period_us 调度请求后根据配额内核分配给容器使用的cpu时间。cpu.cfs_quota_us
docker run -itd --name 容器名 --cpu-quota 周期时间 镜像名:标签 /binbash例
docker run -itd --name test2 --cpu-quota 40000 tentos:7 /binbash
设置容器cpu权重
--cpu-shares 设置容器占用cpu的权重比: 需要多个容器才能生效。指定容器占用cpu的份额。 模式权重1024设置的值只能是1024的倍数。 给每个容器使用cpu设置了相对的权重权重高的可以使用cpu的资源更多但如果只运行一个容器即便设置了权重但是没有其他更高的权重的容器来占用资源权重低的容器依然不受限。
docker run -itd --name 容器名 --cpu-shares 权重 镜像名:标签 /bin/bash例
docker run -itd --name centos1 --cpu-shares 256 centos:7 /bin/bash
指定cpu
docker run -itd --name 镜像名 --cpuset-cpus 数 镜像名:标签 /bin/bash例
docker run -itd --name test5 --cpuset-cpus 1,3 centos:7 /bin/bash限制容器对内存的使用
docker run -itd --name 镜像名 -m 内存大小 镜像名:标签 /bin/bash例
docker run -itd --name test6 -m 512m centos:7 /bin/bash
限制容器对swap的使用
想要限制容器使用swap。必须和限制内存一块使用
docker run -itd --name 容器名 -m 内存大小 --memory-swapswap大小 镜像名:标签 /bin/bash例
docker run -itd --name test7 -m 512m --memory-swap1g centos:7 /bin/bash
如果限制了内存是512swap是1G那么容器实际上能够使用swap空间1g-512m
swap使用的是1g-512G 如果不设置-m 512m 但是使用swap的空间是-m的两倍
如果设置-m 512m 和 --memory-swap1g那么容器实际上能够使用swap空间1g-512m 如果设置-m 512m 和 --memory-swap的值一样容器就不能使用swap 如果设置-m 512m 和 --memory-swap-1容器就无限制使用swap 限制容器对磁盘I/O的使用
限制容器再磁盘上的读限制
docker run -itd --name 容器名 --device-read-bps 磁盘:读大小 镜像名:标签 /bin/bash例
docker run -itd --name test8 --device-read-bps /dev/sda:1M centos:7 /bin/bash 限制容器再磁盘上的写限制
docker run -itd --name 容器名 --device-write-bps 磁盘:写大小 镜像名:标签 /bin/bash例
docker run -itd --name test9 --device-write-bps /dev/sda:1MB centos:7 /bin/bash测试写入速度dd if/dev/zero of123.txt bs1M count10 oflagdirect
在使用dd 获取空字符集是从文件系统的缓存当中输入速度是比较快的
oflagdirect
禁用文件系统缓存直接把数据写入磁盘可以更真实的测试 测试读取此时
docker run -itd --name testl --device-read-iops /dev/sda:100 centos:7 /bin/bash
测试写入此时
docker run -itd --name testl --device-write-iops /dev/sda:100 centos:7 /bin/bash清理docker占用的磁盘空间
docker system prune -a 会清理掉(四点)
1、删除已经停止的容器
2、删除未被使用的网络
3、删除未被使用的镜像
4、删除创建时的缓存 压力测试
模拟系统负载的工具
yum -y install stressstress -c 4
查看docker的cpu占用
可以容器的运行占用宿主机资源的情况
docker stats 容器名/id 查看容器内PID和宿主机pid的映射关系
查看容器内PID和宿主机pid的映射关系
docker top 容器名/id 总结
怎么对容器使用cpu进行限制: 容器占用cpu的时间 容器占用cpu的权重 容器绑定cpu
容器的宿主机的内存使用限制: -m
swap必须和限制内存一块使用 -m 512m --memory-wap1g -m 512m --memory-wap512m -m 512m -m 512m--memory-wap-1
磁盘I/O(了解即可) 清理docker占用的磁盘空间会删除已经停止的容器删除所有未被使用的网桥设备、删除所有未被使用的镜像删除创建容器时的缓存以及无用的数据卷
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87815.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!