在 Ubuntu 14.04 下使用 cgroups 和 Docker
时间:2015-04-12 23:15 来源:oschina.net 作者:Garfielt
英文原文:Using cgroups with Docker on Ubuntu 14.04
作为我在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
正如预期的,我们可以看到这些容器完全使用了每一个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
正如你所看到的,它奏效了!折腾快乐!
http://www.oschina.net/translate/using-cgroups-with-docker-on-ubuntu-14-04
(责任编辑:IT)
英文原文:Using cgroups with Docker on Ubuntu 14.04作为我在ApacheCon工作的一份呈现,我正在Docker内部使用一些cgroups 。 我发现这方面的文档很少,所以我想把它们合到一块发一篇关于它的博客。 启用LXC驱动假设你已经在Ubuntu 14.04上安装了Docker,你仍旧需要启用LXC驱动。 要开启该项,你需要这样做
启用两个不没有cgroup策略的容器让我们先加载两个容器,两个的CPU都要最大化(通过运行md5sum /dev/urandom)
正如预期的,我们可以看到这些容器完全使用了每一个CPU内核。 启用两个没有cgroup策略的容器现在让我们通过添加两条cgroup策略启用新的LXC选项。我们想要做的是运行相同的工作负荷且运行在相同CPU内核。我们期望它会占有CPU50%。而且,我们想给其中一个容器80%的CPU共享,其他一个共享20%。要做到这一点,我们使用‘cpu.shares’来分配CPU并使用‘cpuset.cpus’锁定容器到同一个CPU内核。 用低优先级启动容器:
用高优先级启动容器:
正如你所看到的,它奏效了!折腾快乐! http://www.oschina.net/translate/using-cgroups-with-docker-on-ubuntu-14-04 (责任编辑:IT) |