设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

在Ubuntu 14.04下使用cgroups和Docker

2015-4-10 22:29| 发布者: joejoe0332| 查看: 999| 评论: 0|原作者: Garfielt|来自: oschina

摘要: 作为我在ApacheCon工作的一份呈现,我正在Docker内部使用一些cgroups 。我发现这方面的文档很少,所以我想把它们合到一块发一篇关于它的博客。

  作为我在ApacheCon工作的一份呈现,我正在Docker内部使用一些cgroups 。


  我发现这方面的文档很少,所以我想把它们合到一块发一篇关于它的博客。


启用LXC驱动

  假设你已经在Ubuntu 14.04上安装了Docker,你仍旧需要启用LXC驱动。


  要开启该项,你需要这样做

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


启用两个不没有cgroup策略的容器

  让我们先加载两个容器,两个的CPU都要最大化(通过运行md5sum /dev/urandom)

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

Docker containers running without cgroup policy

  正如预期的,我们可以看到这些容器完全使用了每一个CPU内核。


启用两个没有cgroup策略的容器

  现在让我们通过添加两条cgroup策略启用新的LXC选项。我们想要做的是运行相同的工作负荷且运行在相同CPU内核。我们期望它会占有CPU50%。而且,我们想给其中一个容器80%的CPU共享,其他一个共享20%。要做到这一点,我们使用‘cpu.shares’来分配CPU并使用‘cpuset.cpus’锁定容器到同一个CPU内核。


用低优先级启动容器:

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


用高优先级启动容器:

1
2
3
$ 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

  正如你所看到的,它奏效了!折腾快乐!


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部