目录正文吐槽Docker-compose限制CPU和内存验证总结正文 最近我在使用开源统计Umami过程中,发现CPU和内存经常占满,导致其它服务都不能正常使用。Umami我使用的d
最近我在使用开源统计Umami过程中,发现CPU和内存经常占满,导致其它服务都不能正常使用。Umami我使用的docker-compose
进行部署,于是打算使用docker-compose
限制下容器的CPU和内存使用来解决这个问题。
于是我就去搜索相关文档寻找限制容器资源使用率的方法,给我的感觉是Docker官方在设计docker-compose的时候有点混乱。
docker-compose
的版本分1.x
和2.x
不同版本特性不一样docker-compose.yaml
里面的version
又分多个版本(1.x-3.x),不同的版本特性不一样我直接贴出Umami的完整docker-compose.yaml
内容:
---
version: '3'
services:
umami:
image: docker.umami.dev/umami-software/umami:Mysql-latest
deploy:
resources:
limits:
cpus: '0.50'
memory: 500M
reservations:
cpus: '0.25'
memory: 200M
ports:
- "3000:3000"
environment:
DATABASE_URL: mysql://umami:xxx@127.0.0.1:3306/umami
DATABASE_TYPE: mysql
HASH_SALT: replace-me-with-a-random-string
restart: always
network_mode: "host"
限制指令为deploy.resources.limits
这部分,注意节点位置,上面这部分限制的含义是:
Umami服务的CPU使用被限制在最多50%的CPU能力,内存使用被限制在最多500MB。同时,这个服务至少需要25%的CPU和200MB的内存。
我们启动的时候命令需要发生一些变化,否则不会生效:
#原本的启动命令为
docker-compse up -d
# 需要添加一个参数--compatibility表示以兼容模式来运行
docker-compose --compatibility up -d
这里的关键在于添加--compatibility
参数以兼容模式来运行,否则限制不会生效。
通过上述方法限制容器CPU和内存后,再继续使用命令:docker stats
查看容器资源使用情况:
可以看到umami
这个容器被成功限制为500MB
内存。
docker-compose.yaml
限制内存需要添加deploy.resources.limits
节点docker-compose
命令启动的时候需要添加--compatibility
参数以兼容模式来运行,否则限制不会生效以上就是Docker Compose中限制容器的CPU和内存使用?的详细内容,更多关于Docker Compose限制CPU的资料请关注编程网其它相关文章!
--结束END--
本文标题: Docker Compose中如何限制容器的CPU和内存使用
本文链接: https://lsjlt.com/news/214285.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0