dockerdocker-copose_限制容器cpu和内存

news/2025/3/16 6:25:44/

本文目录

  • docker的限制方式
    • 限制CPU占用
    • 限制内存占用
  • docker-compose

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效果
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: alwaysimage: app-server:V1.0.0deploy:resources:limits:cpus: '0.1' #使用的容器的CPU核心数量或百分比cpuset: '0-3' #可以使用的具体CPU核心1~3memory: 1G #内存上限为1Gmemswap_limit: 2G #内存+swap内存总上限为2Greservations:memory: 256M #内存预留为256Mcpus: "0.1"  # 保留的CPU使用量为10%

http://www.ppmy.cn/news/1368040.html

相关文章

文旅行业| 某ZF型酒店警卫队精细化管理项目成功案例纪实

——建立治安联防体系及事故处理预案&#xff0c;全面保障领导安全 警卫队是招待所不可或缺的一部分&#xff0c;他们的合理设置能够保障人员的生命和财产安全。然而对于警卫队的管理存在着许多问题&#xff1a;警卫的素质不高、没有责任心、应急能力不高以及岗位设置上的不合…

消息中间件之RocketMQ源码分析(二十五)

Broker存储事务消息 在Broker中&#xff0c;事务消息的初始化是通过BrokerController.initialTransaction()方法执行的。3个核心的初始化变量 1.TransactionalMessageService. 事务消息主要用于处理服务&#xff0c;默认实现类是TransactionalMessageServiceImpl.如果想自定…

mysql timestamp转换为datetime

MySQL timestamp转换为datetime的方法 1. 流程概述 在MySQL中&#xff0c;timestamp和datetime是两种不同的数据类型。timestamp存储了日期和时间&#xff0c;并且会自动更新&#xff0c;可以用于记录数据的创建和修改时间。datetime则是一个固定的日期和时间&#xff0c;不会自…

LeetCode215.数组中的第K个最大元素

题目 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 输入: [3,2,1,5,6,4], …

[机缘参悟-158] :西游记中的“佛” 、“道”之争

目录 前言 一、西游记中的佛教元素 1.1 佛教元素 1.2 西游记佛教思想 1.3 佛教的三界五行&#xff1a;物质世界 1.4 佛教中不在三界内&#xff0c;不在五行中&#xff1a;精神世界 二、西游记中的道教元素 2.1 主要元素 2.2 道家思想 三、“佛”如何兼容“道” 3.1 …

程序员视角的大语言模型,如何使用大语言模型

从程序员的视角来看&#xff0c;使用大语言模型&#xff08;LLMs&#xff09;主要涉及以下几个步骤&#xff1a; 选择合适的模型&#xff1a; 首先&#xff0c;需要确定哪个大语言模型最适合你的需求。不同的模型可能在不同的任务上有不同的表现&#xff0c;比如代码生成、代码…

Vue中<style scoped lang=“scss“>的含义

这段代码中的<style scoped lang"scss">是HTML和Vue框架结合使用时常见的一个模式&#xff0c;具体含义如下&#xff1a; scoped&#xff1a;这是一个Vue.js特有的属性&#xff0c;用来指定样式只应用于当前组件的元素。没有这个属性时&#xff0c;样式会全局应…

抽象类、模板方法模式

抽象类概述 在Java中abstract是抽象的意思&#xff0c;如果一个类中的某个方法的具体实现不能确定&#xff0c;就可以申明成abstract修饰的抽象方法&#xff08;不能写方法体了&#xff09;&#xff0c;这个类必须用abstract修饰&#xff0c;被称为抽象类。 抽象方法定义&…