docker的资源隔离---cpu、内存、磁盘限制

简介:

作为一个能够稳定运行的环境,不但对单个容器有要求,对所有的容器都应该有隔离,避免一个容器吃掉所有的资源。


1、cpu的隔离:

cpu的限制包括两个方面:cpu的占比、绑定cpu。


  -c可以指定CPU的占比,--cpuset可以绑定CPU


这里用试验来验证下:

docker run -it --name test01 -c 1024 --cpuset-cpus=0,1  05c259583efe /bin/bash

docker run -it --name test02 -c 512  --cpuset-cpus=0,1  05c259583efe /bin/bash


这里对test01 和 test02 进行设置cpu占比 1024:512 都是绑定cpu0,1   然后进行试验

用stress进行压测  

首先安装stress : rpm -Uvh http://pkgs.repoforge.org/stress/stress-1.0.2-1.el7.rf.x86_64.rpm

然后执行 : stress -c 13 & 

给系统一个随机负载,此命令产生13个进程,每个进程都反复不停的计算由rand()产生随机数的平方根。直到资源耗尽。


最后是看结果,分别在机主机,test01,test02 上查看cpu负载情况。


主机的cpu情况:cpu0,1现在是100%  运行stress占用明显是2:1


wKioL1X70KnxN73zAATQz1dCE6A524.jpg


这是test01上的数值  

wKioL1X70QCgxC8PAAQsb1_wHA8174.jpg

这是test02上的数值 

wKiom1X7zwmzudr1AAQpShdJwKU128.jpg

将container1的cpu.shares改为512,

#echo “512” > /cgroup/cpu/docker/$CONTAINER_ID/cpu.shares

也就是说可以通过修改文件来达到修改cpu占比的目的。


2、内存的隔离:

Docker提供参数-m, --memory="" 限制容器的内存使用量。如:


docker run -it  -m 128m  --name test03 05c259583efe /bin/bash


可以直接用:docker stats test03 查看内存

wKioL1X72TmziM89AADS1CmjIw4852.jpg

也可压测得出:


wKioL1X71OPztlJ-AAGLEJHyBcA179.jpg

这里 268M  VSZ 进程虚拟大小;115M  RSS 实际内存的大小;


3、磁盘限制



磁盘的IO限制:


将IO带宽限制为10M/s:

# echo "253:1 10485760" > /cgroup/blkio/docker/$CONTAINER_ID/ blkio.throttle.write_bps_device


可以通过dd文件验证:  time $(dd if=/dev/zero of=f1.txt bs=100M count=2)


磁盘大小的限制:

docker容器默认的空间是10G,如果想指定默认容器的大小(在启动容器的时候指定),可以在docker配置文件里通过dm.basesize参数指定,比如
docker -d --storage-opt dm.basesize=20G

是指定默认的大小为20G

本文转自    憬薇   51CTO博客,原文链接:http://blog.51cto.com/welcomeweb/1696121


相关文章
|
2月前
|
Prometheus 监控 Cloud Native
除了Prometheus,还有哪些工具可以监控Docker Swarm集群的资源使用情况?
除了Prometheus,还有哪些工具可以监控Docker Swarm集群的资源使用情况?
246 79
|
2月前
|
数据可视化 Linux iOS开发
Python测量CPU和内存使用率
这些示例帮助您了解如何在Python中测量CPU和内存使用率。根据需要,可以进一步完善这些示例,例如可视化结果或限制程序在特定范围内的资源占用。
106 22
|
6月前
|
存储 设计模式 监控
快速定位并优化CPU 与 JVM 内存性能瓶颈
本文介绍了 Java 应用常见的 CPU & JVM 内存热点原因及优化思路。
816 166
|
4月前
|
存储 设计模式 监控
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?
108 0
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?
|
5月前
|
人工智能 运维 监控
2025年阿里云服务器配置选择全攻略:CPU、内存、带宽与系统盘详解
在2025年,阿里云服务器以高性能、灵活扩展和稳定服务助力数字化转型,提供轻量应用服务器、通用型g8i实例等多样化配置,满足个人博客至企业级业务需求。针对不同场景(如计算密集型、内存密集型),推荐相应实例类型与带宽规划,强调成本优化策略,包括包年包月节省成本、ESSD云盘选择及地域部署建议。文中还提及安全设置、监控备份的重要性,并指出未来可关注第九代实例g9i支持的新技术。整体而言,阿里云致力于帮助用户实现性能与成本的最优平衡。 以上简介共计238个字符。
|
7月前
|
Prometheus 监控 Cloud Native
如何使用Prometheus监控Docker Swarm集群的资源使用情况?
还可以根据实际需求进行进一步的配置和优化,如设置告警规则,当资源使用超出阈值时及时发出警报。通过这些步骤,能够有效地使用 Prometheus 对 Docker Swarm 集群的资源进行监控和管理。
248 8
|
7月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
679 7
|
7月前
|
开发框架 .NET PHP
网站应用项目如何选择阿里云服务器实例规格+内存+CPU+带宽+操作系统等配置
对于使用阿里云服务器的搭建网站的用户来说,面对众多可选的实例规格和配置选项,我们应该如何做出最佳选择,以最大化业务效益并控制成本,成为大家比较关注的问题,如果实例、内存、CPU、带宽等配置选择不合适,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文将详细解析企业在搭建网站应用项目时选购阿里云服务器应考虑的一些因素,以供参考。
|
8月前
|
弹性计算 Kubernetes Perl
k8s 设置pod 的cpu 和内存
在 Kubernetes (k8s) 中,设置 Pod 的 CPU 和内存资源限制和请求是非常重要的,因为这有助于确保集群资源的合理分配和有效利用。你可以通过定义 Pod 的 `resources` 字段来设置这些限制。 以下是一个示例 YAML 文件,展示了如何为一个 Pod 设置 CPU 和内存资源请求(requests)和限制(limits): ```yaml apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image:
1056 2
|
8月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
3828 2

热门文章

最新文章