• docker&docker-copose_限制容器cpu和内存


    docker的限制方式

    限制CPU占用

    Docker使用--cpus参数来限制容器的CPU资源。该参数指定了分配给容器的CPU核心数量或百分比

    例子:限制CPU使用个数

    docker run --cpus=2 
    
    • 1

    以上命令代表限制容器使用2个CPU核心

    例子:限制CPU使用百分比

    docker run --cpus=0.1 
    
    • 1

    以上命令代表限制容器使用10%的CPU利用率。

    使用--cpuset-cpus参数来限制容器可以使用的具体CPU核心,通过使用逗号分隔的CPU编号列表。

    docker run --cpuset-cpus=0,2 
    
    • 1

    以上命令代表限制容器只能使用第1个和第3个的CPU核心。

    限制内存占用

    Docker使用-m,--memory参数来限制容器可使用的内存大小,使用--memory-swap参数来限制容器可使用的内存+交换分区大小。

    参数含义
    -m,–memory限制容器可使用的内存大小,单位可为‘b,k,m,g’,最小为4m
    –memory-swap限制容器可使用的内存+交换分区大小,值要比-m参数的值大,建议为-m的2倍

    交换分区的含义:

    在内存不足的情况下交换分区充当临时存储引擎,当容器需要更多的内存时,交换区会对缓存中的数据进行移动,以便为应用程序留出更多的内存空间。交换分区通常是由操作系统在硬盘上创建的,它的访问速度慢于内存,因此在需要时尽量避免使用交换区,尤其是在容器中。因此,建议将--memory-swap参数设置得高一些,但不要超过宿主机的物理内存大小。

    当宿主机没有开启swap ,那么--memory-swap不管怎么设置,都不会用到swap,这时容器使用的最大内存为--m参数设置的大小。

    例子:

    docker run --m=1g 
    docker run --m=1g --memory-swap=2g 
    
    • 1
    • 2

    --memory--memory-swap组合配置有什么不通的含义?

    –memory–memory-swap效果
    1g0/不限制容器最大可用内存为 2g,其中 ram 为 1g,swap 为 1g
    1g2g容器最大可用内存为 2g,其中 ram 为 1g,swap 为 1g
    1g-1容器最大可用内存为 1g+主机可用swap

    docker-compose

    docker-compose.yaml文件如下

    version: '3'
    services:
      app:
        restart: always
        image: app-server:V1.0.0
        deploy:
          resources:
            limits:
              cpus: '0.1' #使用的容器的CPU核心数量或百分比
              cpuset: '0-3' #可以使用的具体CPU核心1~3
              memory: 1G #内存上限为1G
              memswap_limit: 2G #内存+swap内存总上限为2G
           reservations:
              memory: 256M #内存预留为256M
              cpus: "0.1"  # 保留的CPU使用量为10%
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
  • 相关阅读:
    万字长文:一文彻底搞懂Elasticsearch中Geo数据类型查询、聚合、排序
    如何创建public class JwtAuthenticationWebFilter extends AuthenticationWebFilter
    JVM—对象的创建
    docker快速入门
    Android不同设备字符串显示原理和build.prop生成过程
    SpringCloud之OpenFeign调用解读
    网络安全(黑客)——2024自学
    基于Android平台的手机安全卫士的设计与实现
    关于Oracle PrimaveraP6/Unifier虚拟机不提供的说明
    3.10、以太网交换机的生成树协议 STP
  • 原文地址:https://blog.csdn.net/weixin_40877388/article/details/136374638