内存限额

使用方法:

  1. -m 或 --memory:设置内存的使用限额,例如 100M, 2G。
  2. –memory-swap:设置 内存+swap 的使用限额。
docker run -m 200M --memory-swap=300M ubuntu

其含义是允许该容器最多使用 200M 的内存和 100M 的 swap。默认情况下,上面两组参数为 -1,即对容器内存和 swap 的使用没有限制。

下面我们将使用 progrium/stress 镜像来学习如何为容器分配内存。该镜像可用于对容器执行压力测试。执行如下命令:

docker run -it -m 200M --memory-swap=300M progrium/stress --vm 1 --vm-bytes 280M

–vm 1:启动 1 个内存工作线程。

–vm-bytes 280M:每个线程分配 280M 内存。

因为 280M 在可分配的范围(300M)内,所以工作线程能够正常工作,其过程是:

  • 分配 280M 内存。
  • 释放 280M 内存。
  • 再分配 280M 内存。
  • 再释放 280M 内存。
  • 一直循环…

如果在启动容器时只指定 -m 而不指定 --memory-swap,那么 --memory-swap 默认为 -m 的两倍

CPU 限额

Docker 可以通过 -c 或 --cpu-shares 设置容器使用 CPU 的权重。如果不指定,默认值为 1024。

与内存限额不同,通过 -c 设置的 cpu share 并不是 CPU 资源的绝对数量,而是一个相对的权重值。比如

docker run --name "container_A" -c 1024 ubuntu
docker run --name "container_B" -c 512 ubuntu
  • 启动 container_A,cpu share 为 1024:
  • 启动 container_B,cpu share 为 512:

则 container_A 消耗的 CPU 是 container_B 的两倍。


限制bps和iops

bps 是 byte per second,每秒读写的数据量。
iops 是 io per second,每秒 IO 的次数。

可通过以下参数控制容器的 bps 和 iops:

  • –device-read-bps,限制读某个设备的 bps。
  • –device-write-bps,限制写某个设备的 bps。
  • –device-read-iops,限制读某个设备的 iops。
  • –device-write-iops,限制写某个设备的 iops。

例子:

//下面这个例子限制容器写 /dev/sda 的速率为 30 MB/s
docker run -it --device-write-bps /dev/sda:30MB ubuntu

容器学习 之 限制容器资源(十一)相关推荐

  1. 容器学习Day09-理解容器镜像

    目录 前言 一.理解容器镜像 1.什么是容器镜像? 2.容器镜像结构 3.容器镜像技术实现 二.镜像仓库 1.Repository 2.Registry 三.镜像的拉取和删除 1.查找镜像 2.拉取镜 ...

  2. 容器学习 之 自定义容器网络(十三)

    Docker 提供三种 user-defined 网络驱动:bridge, overlay 和 macvlan.overlay 和 macvlan 用于创建跨主机的网络,我们后面有章节单独讨论. 我们 ...

  3. Mini 容器学习笔记4——组件的生命周期(应用篇)

    Mini容器支持6中生命周期类型: 1. Singleton :单利类型(缺省组件都是单利类型的生命周期,由容器进行托管的) [Test]public void SingletonLifestyleT ...

  4. Mini 容器学习笔记6——组件的获取(应用)

    1. 通过组件Id获取组件实例: [Test]public void GetByIdTest(){ServiceRegistry.Register<Person>("person ...

  5. Docker容器学习梳理--日常操作总结

    使用Docker已有一段时间了,今天正好有空梳理下自己平时操作Docker时的一些命令和注意细节: Docker 命令帮助 $ sudo docker Commands:attach Attach t ...

  6. 学习Kubernetes 和容器技术体系的最佳方法

    你好,我是 Kubernetes 社区资深成员与项目维护者张磊,也是极客时间<深入剖析 Kubernetes >的专栏作者.今天我来与你谈一谈,学习 Kubernetes 和容器技术体系的 ...

  7. Docker容器学习笔记一

    Docker容器学习笔记一 狂神说B站视频:https://www.bilibili.com/video/BV1og4y1q7M4?p=1 Docker容器学习笔记二:https://blog.csd ...

  8. docker部署机器学习/深度学习模型的容器化方案

    文章目录 什么是docker docker的优点 docker image镜像 Dockerfile 文件 Dockerfile配置例子 创建docker镜像 docker container 容器 ...

  9. 【Docker容器学习笔记一】

    一.Docker概述 1.Docker为什么会出现? 一款产品: 开发–上线 两套环境!应用环境,应用配置! 开发 - 运维. 问题:我在我的电脑上可以允许!版本更新,导致服务不可用!对于运维来说考验 ...

最新文章

  1. OKR管理和绩效考核有什么不一样呢?
  2. MySql第几行到第几行语句
  3. 用C语言实现分治方法数组的排序,C语言实现分治法实例
  4. Android SQLite开发调试工具 Android Debug Database
  5. bzoj1715[Usaco2006 Dec]Wormholes 虫洞
  6. html5svg在线编辑器,SVG to Canvas在线转换工具
  7. html照片从模糊到清晰的渐变加载显示方法
  8. Python模块学习 - 用tinify模块压缩和优化图片
  9. 使用reportlab生成条码
  10. Android系统终端命令大全
  11. 自用MATLAB2012a安装教程
  12. Android实现录屏直播(一)ScreenRecorder的简单分析
  13. 【免费分享】全新DHPST分销系统/YEP分销/云主机分销系统源码
  14. 生物化学,材料化学必备!元素周期表
  15. 1076: 三位数求解
  16. 魔兽怀旧服务器位置,《魔兽世界》怀旧服稀有狼位置坐标大全
  17. ajax富客户端存在的意义,基于AJAX的网上银行富客户端研究与设计
  18. 【word】和【excel】小技巧总结
  19. 1.3 网页数据抓取
  20. 词法分析器(实现报告)

热门文章

  1. 9.OD-断点、命令
  2. Windbg教程-调试非托管程序的基本命令上
  3. GROUP BY 子句中 选择列表中的列无效,因为该列没有包含在聚合函数或
  4. H.264 视频的 RTP 载荷格式
  5. WiFi 热点共享设置
  6. kubernetes(六)k8s核心组件学习
  7. 四种代码洁癖类型,程序员看了直呼内行(文末经典书送)
  8. 顶级c程序员之路 基础篇 - 第一章 关键字的深度理解 number-1
  9. 用了Elasticsearch后,查询起飞了!
  10. 一个字符串中到底能有多少个字符? 我竟然算错了!