docker——cgroup限制的应用实例
cgroup限制:
限制的好处:用户可以分配给容器具体的硬件资源,就是防止某个容器占用太多的资源而影响其他的容器或者host主机。
对硬件的限制,也就是cgroup限制,能限制的很少,在容器创建时namespace已经限制好了,只有cpu,mem,硬盘我们来限制。
(1)内存限制:
目的:限制每一个内存线程分配多大内存。
注意:限制的时候不能超过物理内存,可以运行,但是会占用所有物理内存。
格式:
docker run -itd -m 200M --memory-swap=300M centos /bin/bash
参数解释:
memory可以使用200 swap可以使用100
例子:
docker run -itd -m 200M --memory-swap=300M progrium/stress --vm 1 --vm-bytes 280M
progrium/stress:测试镜像,启动一个内存工作线程给280m内存
(2)CPU限制:
安装优先级进行限制,数值大,优先级高。
docker run -it --name containera -c 1024 progrium/stress --cpu 1
参数解释:
1024:优先级越大越优先,占用比值,一个占用100,两个各自50%
(3)硬盘(Block IO)限制:
限制原因:会反复读写硬盘,容易坏
bps 每秒钟读写的数据量
设置参数:--device-read-bps
--device-write-bps
iops 每秒钟读写IO次数
--device-read-iops
--device-write-iops
例子:
docker run -itd --name containerc --blkio-weight 600 centos /bin/bahs
参数解释:
优先设置权重 --blkio-weight 600
验证:
**docker run -it --device-write-bps /dev/sda:30MB centos /bin/bash
设置对硬盘的读写为30MB
**time dd if=/dev/zero of=test.out bs=1M count=800 oflag=direct
测试:
**然后删除这个限制,创建一个新的容器,在进行测试,查看读写速度。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探