如何给docker容器分配内存和cpu
如何给docker容器分配内存和cpu?默认情况下,容器使用的资源是不受限制的。也就是可以使用主机内核调度器所允许的最大资源。但是在容器的使用过程中,经常需要对容器可以使用的主机资源进行限制,下面我们来介绍下。
容器CPU设置
默认设置下,所有容器可以平等地使用主机 CPU 资源并且没有限制。docker 可以通过-c或–cpu-shares设置容器使用 CPU 的权重。如果不指定,默认值为 1024。
与内存限额不同,通过-c设置的 cpu share 并不是 CPU 资源的绝对数量,而是一个相对的权重值。某个容器最终能分配到的 CPU 资源取决于它的 cpu share 占所有容器 cpu share 总和的比例。通过 cpu share 可以设置容器使用 CPU 的优先级。
比如在 host 中启动了两个容器:
docker run --name "container_A" -c 1024 ubuntu docker run --name "container_B" -c 512 ubuntu
container_A 的 cpu share 1024,是 container_B 的两倍。当两个容器都需要 CPU 资源时,container_A 可以得到的 CPU 是 container_B 的两倍。
需要注意的是,这种按权重分配 CPU只会发生在 CPU资源紧张的情况下。如果 container_A 处于空闲状态,为了充分利用 CPU资源,container_B 也可以分配到全部可用的 CPU。
容器内存限额
与操作系统类似,容器可使用的内存包括两部分:物理内存和 swap。 Docker 通过下面两组参数来控制容器内存的使用量。
-m 或 –memory:设置内存的使用限额,例如 100M, 2G。
–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 内存。
如果让工作线程分配的内存超过 300M,分配的内存超过限额,stress 线程报错,容器退出。
如果在启动容器时只指定 -m 而不指定 –memory-swap,那么 –memory-swap 默认为 -m 的两倍,比如:
docker run -it -m 200M ubuntu
容器最多使用 200M 物理内存和 200M swap。
以上是关于如何给docker容器分配内存和cpu的介绍。西部数码的容器云产品是通过docker技术,在集群服务器上部署容器服务实现,功能强大、简单易用,拥有上万linux镜像,秒级开通,高性价比的容器云产品链接 https://www.west.cn/paas/container/
如何给docker容器分配内存和cpu相关推荐
- Docker 容器 jvm 内存参数调整优化
前言 在使用Docker部署java 项目时,发现容器占用内存很高,导致服务器内存压力大,一个简单的boot项目,占用达到1G多内存,有些容器甚至达到快3G内存,并且发现java -jar 启动的项目 ...
- linux查看docker使用率,查看docker容器的内存占用
使用docker stats命令可以查看容器的内存,但是有时候docker stats命令获得的数据可能准确,可以参考下面这种方式 先通过docker ps -a 找到容器的container id ...
- docker 容器占用内存_如何限制Docker容器的内存
容器何时销毁 现在很多服务采用容器化运行,一个容器中运行一个服务,因为容器的创建和启动都是在秒级,所以这种容器化的部署方式被称之为轻量化部署. 1. 容器中服务进程终止 容器的创建和运行是因某个服务进 ...
- Docker容器压力测试查看CPU权重
#需要安装压力测试工具Stress #下载链接贴在下面 Stress安装包链接: 链接: https://pan.baidu.com/s/1ANz2WqhaehI5E-DL7cHnDw 提取码: ts ...
- docker可用容量 查看_查看docker容器占用内存
ps -ef|grep 容器Id [root@wentao-2 order]# ps -ef|grep 3a61cb3fd4f6 root 7358 12956 0 09:14 ? 00:00:00 ...
- Parallels Desktop(PD虚拟机)如何分配内存和CPU核数?
很多用户在安装了PD虚拟机后,会觉得虚拟机内存太小,那么如何分配虚拟机内存呢?CPU核数该怎么设置?具体操作如下: 1.点Mac系统左上方的苹果小标志,选择关于本机,可以看到此机的基本硬件信息,本机是 ...
- 如何设置Docker容器的CPU和内存使用限制
如何设置Docker容器的CPU和内存使用限制 1. 概述 在很多情况下,我们需要限制docker主机上资源的使用. 在本教程中,我们将学习如何设置docker容器的内存和CPU限制 2. 通过doc ...
- Docker容器固定IP分配
我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: host模式,使用--net=host指定. container模式,使 ...
- Docker容器内部署Java微服务的内存限制问题
1. 前言 文末有福利 前两天有同事发现,通过华为云 ServiceStage 的流水线部署基于模板创建的 CSEJavaSDK demo 服务时,会在容器启动过程中报错.初步排查是由于 JVM 占用 ...
最新文章
- 【mDNS】本地DNS解析协议
- Flurl使用Polly实现重试Policy
- JDBC之用元数据将结果集封装为List对象
- 具有左,中或右对齐项的Bootstrap NavBar
- Android音视频专题(二) 在 Android 平台使用 AudioRecord 和 AudioTrack API 完成音频 PCM 数据的采集和播放,并实现读写音频 wav 文件
- JDK下载安装教程及环境变量配置
- element-tree 实现部门-人员选择(支持ID相同)
- JavaScript动态生成HTML元素
- 2021年完美解决Gradle下载慢的问题(Android Studio)
- 快速查看网页元素的CSS样式
- 又一北京“假名媛”曝光,蹭吃蹭喝21天,暴露人性最真实一面
- 3dmax给模型添加渐变背景有哪些方法
- linux测试dvi接口,支持Linux系统的高清DVI采集卡推荐
- 聚观早报 | 特斯拉上海工厂被曝停产;富士相机X-Pro 3已停产
- python serial.write_PySerial write()即时时间
- inputStream 和FileInputStream 转换
- 2020年,拒绝划水,如何规划前端学习新路径?
- 微信读书怎么导入txt
- 2010年全国职称计算机考试专用教程——Dreamweaver MX 2004/FrontPage 2000网页制作
- 植物大战僵尸(8):分析植物的攻击速度
热门文章
- 趁周末,来学点进阶知识:Java 动态编译
- 精美图文讲解Java AQS 共享式获取同步状态以及Semaphore的应用
- Windows中现在有独立的Linux文件夹系统
- 开学季:当当大促的额外优惠又来啦!150 买 400的书!搓搓搓~
- Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失(续)
- nginx子域名 linux,配置nginx服务器 —— Nginx添加多个二级子域名
- error: ‘__declspec‘ attributes are not enabled; use ‘-fdeclspec‘ or ‘-fms-extensions‘ to enabl
- All input tensors must be on the same device
- CVPR‘21 | Involution:超越convolution和self-attention的神经网络新算子
- implementation ‘com.zxy.android:recovery: