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

本文目录

docker的限制方式

限制CPU占用

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

例子:限制CPU使用个数

复制代码
docker run --cpus=2 <imageName>

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

例子:限制CPU使用百分比

复制代码
docker run --cpus=0.1 <imageName>

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

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

复制代码
docker run --cpuset-cpus=0,2 <imageName>

以上命令代表限制容器只能使用第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 <imageName>
docker run --m=1g --memory-swap=2g <imageName>

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

--memory --memory-swap 效果
1g 0/不限制 容器最大可用内存为 2g,其中 ram 为 1g,swap 为 1g
1g 2g 容器最大可用内存为 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%
相关推荐
2601_949575864 分钟前
Flutter for OpenHarmony二手物品置换App实战 - 表单验证实现
android·java·flutter
血小板要健康1 小时前
如何计算时间复杂度(上)
java·数据结构·算法
计算机学姐1 小时前
基于SpringBoot的美食分享交流平台
java·spring boot·后端·spring·java-ee·intellij-idea·美食
Eugene__Chen1 小时前
Java关键字(曼波版)
java·开发语言
lixin5565561 小时前
基于深度生成对抗网络的高质量图像生成模型研究与实现
java·人工智能·pytorch·python·深度学习·语言模型
代码雕刻家2 小时前
4.3.多线程&JUC-多线程的实现方式
java·开发语言
Knight_AL2 小时前
Spring Boot 事件机制详解:原理 + Demo
java·数据库·spring boot
李少兄2 小时前
Java 后端开发中 Service 层依赖注入的最佳实践:Mapper 还是其他 Service?
java·开发语言
学习3人组2 小时前
Docker 从本地Label-studio导入 tar 镜像包
运维·docker·容器
jiaguangqingpanda2 小时前
Day29-20260125
java·数据结构·算法