在 Ubuntu 14.04 下使用 cgroups 和 Docker 已翻译 100%

oschina 投递于 2015/04/06 07:33 (共 2 段, 翻译完成于 04-07)
阅读 6046
收藏 62
3
加载中

As I was working on my upcoming presentation at ApacheCon, I was playing a little bit with cgroups inside Docker.

What I found was that there aren’t a whole lot of documentation on this, so I figured I put together a quick blog post about it.

Enable the LXC driver

Assuming you already have Docker installed on Ubuntu 14.04, you will still need to enable the LXC driver.

To do this, you will need to do the following

$ apt-get install -y lxc
$ echo 'DOCKER_OPTS="--exec-driver=lxc"' \    | tee -a /etc/default/docker
$ service docker restart`

Spin up two containers without cgroup policy

Let’s start by launching two containers that each will max out the CPU (by running md5sum /dev/urandom).

$ docker run -d busybox md5sum /dev/urandom
$ docker run -d busybox md5sum /dev/urandom

Docker containers running without cgroup policy

As expected, we can see that these containers fully utilize one core each.

已有 1 人翻译此段
我来翻译

Spin up two containers without cgroup policy

Now let’s put the new LXC options to use by adding two cgroup policies. What we’re looking to do is to the same workload as before, but run them on the same core. We would then expect them to occupy 50% of the core each. However, we want to give one container 80% of the CPU share, and the other only 20%. To accomplish this, we use ‘cpu.shares’ to divvy up the CPU and ‘cpuset.cpus’ to lock the containers to the same core.

Start container with low priority:

$ docker run -d --name='low_prio' \    --lxc-conf="lxc.cgroup.cpu.shares=250" \ 
    --lxc-conf="lxc.cgroup.cpuset.cpus=0" \
    busybox md5sum /dev/urandom

Start container with high priority:

$ docker run -d --name='high_prio' \    --lxc-conf="lxc.cgroup.cpu.shares=750" \ 
    --lxc-conf="lxc.cgroup.cpuset.cpus=0" \
    busybox md5sum /dev/urandom

Docker containers running with cgroup policy

As you can see, it worked! Happy hacking!

已有 1 人翻译此段
我来翻译
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(10)

慕小怪
慕小怪

引用来自“扁豆焖面先生”的评论

@慕小怪 把x86 BIOS中的intel virtual tech打开,应该可以支持虚拟x64了。

引用来自“慕小怪”的评论

不行,电脑太老了,cpu本身不支持

引用来自“hantsy”的评论

有些 BIOS 没这个设置,,,我之前的本本检测是有intel-vt 功能但 BIOS 中找不到开启。
额,还有这种情况的,,
hantsy
hantsy

引用来自“扁豆焖面先生”的评论

@慕小怪 把x86 BIOS中的intel virtual tech打开,应该可以支持虚拟x64了。

引用来自“慕小怪”的评论

不行,电脑太老了,cpu本身不支持
有些 BIOS 没这个设置,,,我之前的本本检测是有intel-vt 功能但 BIOS 中找不到开启。
asdfsx
asdfsx
启用两个不没有cgroup策略的容器~~~~这样的翻译也能通过~~~~混事呢~~~~
慕小怪
慕小怪

引用来自“扁豆焖面先生”的评论

@慕小怪 把x86 BIOS中的intel virtual tech打开,应该可以支持虚拟x64了。
不行,电脑太老了,cpu本身不支持
开源中国最大五毛
开源中国最大五毛
启用两个不没有cgroup策略的容器
5th_days
5th_days
写的是个傻啊
5292401
5292401
@慕小怪 把x86 BIOS中的intel virtual tech打开,应该可以支持虚拟x64了。
sevk
sevk
cgroups inside Docker.。。
justintung
justintung
比机器翻译的还让人无法理解
慕小怪
慕小怪
我是32位的,也是醉了
返回顶部
顶部