docker 资源控制

一.对内存使用的限制

1.1限制容器可以使用的最大内存

css 复制代码
-m(--memory=):用于限制容器可以使用的最大内存

docker run -itd --name kgc -m 512m centos:7 /bin/bash
 
docker stats

1.2. 限制容器可用的swap 大小

css 复制代码
 限制可用的swap 大小,--memory-swap
 强调一下, --memory-swap是必须要与 --memory(或-m)一起使用的。
 正常情况下, --memory-swap 的值包含容器可用内存和可用swap 。
 所以 -m 300m --memory-swap=1g 的含义为:容器可以使用300M 的物理内存,并且可以使用700M (1G - 300M)的swap。
 ​
 如果 --memory-swap 的值设置为0或者不设置,则容器可以使用的 swap 大小为 -m 值的两倍。
 如果 --memory-swap 的值和 -m 值相同,则容器不能使用swap。
 如果 --memory-swap 值为 -1,它表示容器程序使用的内存受限,而可以使用的swap空间使用不受限制(宿主机有多少swap 容器就可以使用多少)。

二、对磁盘IO配额控制(blkio)的限制

css 复制代码
 --device-read-bps:限制某个设备上的读速度bps ( 数据量),单位可以是kb、mb (M)或者gb。
 例: docker run -itd --name test9 --device-read-bps /dev/sda:1M centos:7 /bin/bash
 #表示该容器每秒只能读取1M的数据量
 ​
 --device-write-bps : 限制某个设备上的写速度bps ( 数据量),单位可以是kb、mb (M)或者gb。
 例: docker run -itd --name test10 --device-write-bps /dev/sda:1mb centos:7 /bin/bash
 #表示该容器每秒只能写入1M的数据量
 ​
 --device-read-iops :限制读某个设备的iops (次数)
 --device-write-iops :限制写入某个设备的iops ( 次数)

2.1.创建容器,不限制写速度

css 复制代码
 #创建容器tt01,不限制写入速度
 docker run -it --name tset1 centos:7 /bin/bash
 ​
 #通过dd来验证写速度,拷贝50M的数据
 dd if=/dev/zero of=/opt/test.out bs=10M count=5 oflag=direct   #添加oflag参数以规避掉文件系统cache

2.2.创建容器,并限制写速度

css 复制代码
#创建容器,并限制写入速度为1MB/s,即每秒只能写入1MB的数据量。
docker run -it --name test2 --device-write-bps /dev/sda:1mb centos:7 bash

#通过dd来验证写速度,拷贝50M的数据到容器中
dd if=/dev/zero of=/opt/test.out bs=10M count=5 oflag=direct  #添加oflag参数以规避掉文件系统cache

2.3.清理docker占用的磁盘空间

css 复制代码
docker system prune -a			#可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络

三、总结

3.1.对cpu的限制参数

docker run -cpu-period #设置调度周期时间1000~1000000

-cpu-quota #设置容器进程的CPU占用时间,要与调度周期时间成比例

--cpu-shares #设置多个容器之间的CPU资源占用比

--cpuset-cpus #绑核(第一个CPU编号从0开始)

3.2.对内存的限制

-m 物理内存 --memory-swap=总值

3.3.对磁盘IO的限制

--device-read-bps 设备文件:1mb/1M #限制读速度

--device-write-bps 设备文件:1mb/1M #限制写速度

--device-read-iops #限制读次数

--device-write-iops #限制写次数

​docker system prune -a #释放无用的资源

相关推荐
AIgorithmGEEK15 小时前
Linux 环境变量完全指南:从入门到理解底层原理
linux·运维·服务器
修罗王15 小时前
Linux Docker 服务管理与排查实战指南(新手速查版)
运维·docker
迪康Defender15 小时前
从静态存储到动态流转:终端透明加密两种模式实战解析
运维·服务器·网络·数据库·其他
酷可达拉斯16 小时前
Linux操作系统-升级OpenSSH修复漏洞
linux·运维·服务器·云计算
云川之下17 小时前
【k8s】NAD(NetworkAttachmentDefinition)与SR‑IOV‑Operator 关系
云原生·容器·kubernetes
张龙68718 小时前
Docker 镜像瘦身实战:从 1.2GB 到 128MB,我踩过的 7 个坑和一套可复制的方法论
运维·后端·docker
外滩运维专家18 小时前
Nginx 上的通配符证书 90 天到期,续签这事我是这么搞的
运维
科技新资讯19 小时前
国内AI影视制作服务商哪家口碑好
运维·人工智能·devops
杨浦老苏19 小时前
开源堡垒机 Warpgate:一个容器搞定 SSH、MySQL 和 Web 访问
运维·docker·ssh·堡垒机·群晖
ERD Online20 小时前
docker-compose 一键部署的 MIT 开源数据库建模平台
数据库·docker·开源