简介

Linux Container是OS级别的虚拟化方案,它相比于一般的虚拟机没有了硬件模拟以及指令模拟,相比传统虚拟机具有更低的开销,因此可以应用到私有云之中。LXC目前的版本支持对memory,cpu以及block IO的管理和限制,目前不支持对网络IO的管理,但该特性已经加入到其roadmap,这些资源的管理和限制对企业私有云的搭建份至关重要,可以提高集群资源的使用率。

环境

LXC需要比较高版本的内核支持,28以上,最好是32以上。我的测试环境是centos6, 内核版本是2.6.32。

准备

block IO即磁盘io,lxc管理block IO是通过在内核的io scheduler CFQ增加hook机制实现的,因此使用lxc管理block io 需要将内核的io scheduler设置为CFQ,你可以通过

  1. cat /sys/block/sda/queue/scheduler
    1. noop anticipatory deadline [cfq]

代中括号的就是当前的io scheduler, 如果要修改, 直接修改这个文件即可

测试

创建两个container, test1和test2, 他们从同一个文件(400M)读入数据,通过lxc的设置控制两个进程读的速度。
test1的配置:

  1. lxc.cgroup.blkio.weight = 100

test2的配置:

  1. lxc.cgroup.blkio.weight = 1000

执行脚本:

  1. sync
  2. echo 3 > /proc/sys/vm/drop_caches  #这两句必须要,用于清空cache,数据在第一次读入后都在caache中
  3. dd if=/tmp/file of=/dev/null

命令

  1. lxc-execute -n test1 -f /tmp/test1.conf /tmp/test1.sh
  2. lxc-execute -n test2 -f /tmp/test2.conf /tmp/test2.sh

测试结果及分析

test1: cost 11.12s   speed is 37.5MB/s
test2: cost 6.4s   speed is 65.7MB/s
假设test1读的速度是v,文件大小是s,则test1的时间是 s/v
那test2的速度根据权重比应该是0.1v,则test2消耗的时间是 s/v + 0.9s/1.1v
因此两者时间比是0.55, 而实际的结果是6.4/11.12=0.5755, 刚好印证了这个结果,因此可以说lxc对block io的控制是很好的。

PS:感谢淘宝Zhu yanhai的支持,非常感谢!

 
分类: LXC

最新文章

  1. mac上安装redis
  2. mybatis之动态SQL
  3. Oracle Data Provider for .NET now on NuGet
  4. 初探JavaScript魅力(二)
  5. JavaScript的DOM编程--05--获取文本节点
  6. python 格式化向sql语句输出元组
  7. 获取当前div以外所有部分
  8. Ansible学习实战手记-你想要知道的可能都在这里了
  9. flashfxp 数据socket错误 连接已超时 filezilla
  10. Spring MVC数据绑定
  11. PAT 1022 D进制的A+B (20)(20 分)
  12. sql server 表变量存储临时查询数据
  13. Linux下安装Beego:go install: cannot install cross-compiled binaries when GOBIN is set
  14. python网络编程--线程递归锁RLock
  15. 【LeetCode题解】350_两个数组的交集Ⅱ
  16. Python协程(上)
  17. 【转】c# 类反射简单操作
  18. Springboot2.0入门介绍
  19. 2.什么是composer与packgist,composer的安装
  20. 将模型储存到本地-FastCoder

热门文章

  1. js 二叉搜索树
  2. Vue中nextTick()解析
  3. Spring思维课程导图——bean得实例化和bean的管理
  4. java基础之吃货联盟
  5. c++将bool变量以文字形式打印
  6. css的基本单词
  7. rxswift-self.usernameTF.rx.text.orEmpty.map
  8. ESLint =》tslint.json
  9. java静态变量、实例变量和局部变
  10. Lua练习题集嚢