Docker CPU 资源限制——CPU固定核功能测试
Docker使用Linux cgroup来实现资源的限制,对于CPU的限制有两种方法:
1.cpuset
CPU Set限定容器使用某个固定的CPU核。使用默认的libcontainer引擎时,可以通过--cpuset来指定进程/docker容器在执行时使用某几个固定的CPU。比如0-3或以逗号分割如0,3,4(0是第一个CPU)。
2.cpu.shares
CPU shares是相对权重, 设置为一个正整数,代表所分配的相对CPU资源比。在Docker中,使用默认的libcontainer引擎时,可以指定在docker run时指定-c或--cpu-shares=0。当DockerDaemon中增加新的容器时,CPU shares的权重相应减小,当删除容器时CPU shares的权重相应增加。
由于第二种方式理解上有些绕,且容器真正分到的CPU资源会随着容器数及其他容器权重而改变,个人建议并不太适合应用到生产场景中。本文主要分析第一种方式,即cpuset。
测试步骤
1、下载CPU测试image。agileek/cpuset-test给出了一种用于测试CPU的image,功能就是将指定的CPU资源用满
$ docker pull agileek/cpuset-test
2、测试容器占用单独CPU
$ docker run -it --rm --cpuset= agileek/cpuset-test
3、另开终端窗口,观察CPU占用情况
[root@zhenyunode ~]# mpstat -P ALL
Linux 3.10.-.el7.x86_64 (zhenyunode) 2015年12月20日 _x86_64_ ( CPU) 21时25分17秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
21时25分22秒 all 12.68 0.00 0.05 0.00 0.00 0.00 0.00 0.00 0.00 87.27
21时25分22秒 0.40 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.60
21时25分22秒 0.40 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.60
21时25分22秒 0.20 0.00 0.20 0.00 0.00 0.00 0.00 0.00 0.00 99.60
21时25分22秒 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
21时25分22秒 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21时25分22秒 0.20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.80
21时25分22秒 0.40 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.60
21时25分22秒 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
4、测试容器占用多个CPU
$ docker run -it --rm --cpuset=,,, agileek/cpuset-test /cpus
5、另开终端窗口,观察CPU占用情况
[root@zhenyunode ~]# mpstat -P ALL
Linux 3.10.-.el7.x86_64 (zhenyunode) 2015年12月20日 _x86_64_ ( CPU) 21时26分34秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
21时26分39秒 all 50.24 0.00 0.05 0.00 0.00 0.00 0.00 0.00 0.00 49.71
21时26分39秒 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21时26分39秒 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
21时26分39秒 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21时26分39秒 0.40 0.00 0.20 0.00 0.00 0.00 0.00 0.00 0.00 99.40
21时26分39秒 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21时26分39秒 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21时26分39秒 0.60 0.00 0.20 0.00 0.00 0.00 0.00 0.00 0.00 99.20
21时26分39秒 0.40 0.00 0.20 0.00 0.00 0.00 0.00 0.00 0.00 99.40
经过以上的测试步骤,可以看到,当为容器配置某个CPU时,该CPU被占满,但其余的CPU并没有受到影响。
Docker CPU 资源限制——CPU固定核功能测试的更多相关文章
- Docker CPU 资源限制——CPU分片功能测试
之前的一篇随笔——Docker CPU 资源限制 中介绍了针对COU的某个或某几个核的控制,今天介绍下CPU分片功能,即CPU占比. 测试步骤 1.下载CPU测试image.agileek/cpuse ...
- docker cgroup技术之cpu和cpuset
在centos7的/sys/fs/cgroup下面可以看到与cpu相关的有cpu,cpuacct和cpuset 3个subsystem.cpu用于对cpu使用率的划分:cpuset用于设置cpu的亲和 ...
- KVM虚拟机cpu资源限制和vcpu亲缘性绑定
前言 KVM中添加的实例存在资源分布不均的情况,这样如果有消耗资源的实例会影响到其他实例的服务正常运行,所以给kvm做资源限制是很有必要的,下面记录一下在centos7中KVM环境下使用cgroup限 ...
- Docker 容器资源限制
Docker 容器资源限制 默认情况下,一个容器并没有资源限制,并且该容器可以使用内核调度的所有资源.Docke提供了在启动容器时设置一些参数来控制该容器使用的内存.CPU和IO. 内存 OOME:在 ...
- docker高级应用之cpu与内存资源限制(转)
时间:2015-06-09 14:01:52 阅读:1581 评论:0 收藏:0 [点我收藏+] 标签:docker资源限制 docker cpu限制 ...
- docker的memory和cpu资源限制
这里仅针对docker本身,不涉及任何编排工具compose或者k8s等. 按照惯例,官文撸起来. 重要的部分是一些选项,用来限制资源大小. Memory Most of these options ...
- Docker技术入门与实战 第二版-学习笔记-5-容器-命令及限制内存与cpu资源
1.启动容器 启动容器有两种方式: 基于镜像新建一个容器并启动 将在终止状态(stopped)的容器重新启动 1)新建并启动——docker run 比如在启动ubuntu:14.04容器,并输出“H ...
- docker容器资源限制:限制容器对内存/CPU的访问
目录 一.系统环境 二.前言 三.docker对于CPU和内存的限制 3.1 限制容器对内存的访问 3.2 限制容器对CPU的访问 一.系统环境 服务器版本 docker软件版本 CPU架构 Cent ...
- Linux资源控制-CPU和内存
主要介绍Linux下, 如果对进程的CPU和内存资源的使用情况进行控制的方法. CPU资源控制 每个进程能够占用CPU多长时间, 什么时候能够占用CPU是和系统的调度密切相关的. Linux系统中有多 ...
随机推荐
- 如何解决SQLServer占CPU100%
文章目录 遇到的问题 使用SQLServer Profiler监控数据库 SQL1:查找最新的30条告警事件 SQL2:获取当前的总报警记录数 有哪些SQL语句会导致CPU过高? 查看SQL的查询计划 ...
- 做SSH练习的时候,JUunit运行遇到报错信息
提示说是applicationcontext文件中的jdbcUrl信息错误,可是xml文件中的url再三确认是没有错的,不知道怎么回事? 最下面贴上applicationContext.xml中的数据 ...
- linux操作技巧
1. 打开终端 ctrl+ALT+T 新终端 ctrl+shift+T 原有终端新页面 2. 忘记root密码 redhat下 单用户进入grub 在核心文件后加"single&qu ...
- 第八篇 Integration Services:高级工作流管理
本篇文章是Integration Services系列的第八篇,详细内容请参考原文. 简介在前面两篇文章,我们创建了一个新的SSIS包,学习了SSIS中的脚本任务和优先约束,并检查包的MaxConcu ...
- 线性空间光照(即Gamma)
在渲染管线中正确使用Gamma校正是决定渲染效果的一个非常重要的因素,现在商业引擎包括很多国内引擎都已经是在线性空间计算光照.当然也包括我们之前公司设计的引擎.关于gamma校正的定义可以查看wiki ...
- mysql:查询排名
sql语句查询排名 思路:有点类似循环里面的自增一样,设置一个变量并赋予初始值,循环一次自增加1,从而实现排序: mysql里则是需要先将数据查询出来并先行按照需要排序的字段做好降序desc,或则升序 ...
- CPU虚拟化技术(留坑)
留坑~~~ 不知道这个是这么实现的 CPU虚拟化技术就是单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率.虚 ...
- 30个最常用css选择器解析(zz)
你也许已经掌握了id.class.后台选择器这些基本的css选择器.但这远远不是css的全部.下面向大家系统的解析css中30个最常用的选择器,包括我们最头痛的浏览器兼容性问题.掌握了它们,才能真正领 ...
- 使用Mysql修改密码命令更改root的密码
使用Mysql修改密码命令更改root的密码. 进入Mysql数据库命令行方式有两种方式: 方式一:在Mysql开始菜单里包含Mysql命令行客户端,只要点击输入root的密码即可进入. 方式二:在D ...
- Subversion under Linux [Reprint]
一.安装 yum install subversion 二.配置 本系统采用为每个项目单独建一版本库的策略.配置文件,密码文件,访问控制文件等都放在版本库的conf目录下. 所以每次开始一个新项目都必 ...