当前位置:   article > 正文

Docker容器的资源使用限制_docker-compose reservations

docker-compose reservations

如何设置Docker容器的CPU和内存使用限制

容器布署后数,每个容器占用资源数不同,当资源不够用时,互相影响,docker提供上资源使用限制功能

  1. 查看docker 容器内存及CPU使用命令

docker stats

  1. CONTAINER           CPU %               MEM USAGE / LIMIT       MEM %               NET I/O             BLOCK I/O           PIDS
  2. c7bdcdc77786        7.04%               1.212 GiB / 7.638 GiB   15.87%              0 B / 0 B           8.08 MB / 372 MB    183
  3. da75d82bfa9c        7.21%               1.5 GiB / 7.638 GiB     19.64%              0 B / 0 B           9.86 MB / 372 MB    184
  4. 4769f05b983c        7.66%               1.225 GiB / 7.638 GiB   16.04%              0 B / 0 B           13.6 MB / 372 MB    187

. 通过docker run来限制Docker容器资源
我们可以使用docker run命令直接设置资源限制。这是一个简单的办法。但是,该限制于只适用于映像的一次特定执行任务

2.1 Memory 内存限制
例如,让我们将容器可以使用的内存限制为512mb

docker run -m 512m nginx


我们还可以设置一个软限制或者叫保留,当docker检测到主机内存不足时激活:

docker run -m 512m --memory-reservation=256m nginx

2.2 CPU 限制
默认情况下,访问主机的CPU是无限制的,我们可以使用CPUs参数设置cpu限制。例如,让我们约束容器最多使用两个cpu:

docker run --cpus=2 nginx


我们还可以指定CPU分配的优先级。默认值是1024,数字越高优先级越高:

docker run --cpus=2 --cpu-shares=2000 nginx


与内存保留,当计算能力不足且需要在竞争进程之间进行分配时,CPU共享起主要作用

使用docker-compose文件来设置容器资源
我们可以使用docker-compose文件来实现类似的结果。请注意,不同版本的docker-compose的格式设置上是不同的

3.1 docker swarm Versions 3 以上的版本
让我们给Nginx的服务限制是一半的CPU和512m的内存,保留四分之一的CPU和128m的内存。我们需要在我们的服务配置中创建“部署”和“资源”分段:

  1. services:
  2.   service:
  3.     image: nginx
  4.     deploy:
  5.         resources:
  6.             limits:
  7.               cpus: 0.50
  8.               memory: 512M
  9.             reservations:
  10.               memory: 128M

注:reservations没有设置cpus的命令
一般情况下容器的cpus使用被限制在一半,内存为512MB ,如果服务器资源紧张的时候,cpus占用变为1/4,内存占用被限制为128MB

如果要使用上述docker-compose.yaml部署应用我们需要使用docker stack命令 , 部署应用到swarm中

docker stack deploy --compose-file docker-compose.yml bael_stack

3.2 docker-compose Version 2 配置方式
在旧版本的docker-compose中,我们可以将资源限制放在与服务的主要属性相同的级别上。它们的名字也略有不同:

  1. service:
  2.   image: nginx
  3.   mem_limit: 512m
  4.   mem_reservation: 128M
  5.   cpus: 0.5
  6.   ports:
  7.     - "80:80"

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/74335
推荐阅读
相关标签
  

闽ICP备14008679号