在 Ubuntu 14.04 下使用 cgroups 和 Docker
在 Ubuntu 14.04 下使用 cgroups 和 Docker
作為我在ApacheCon工作的一份呈現,我正在Docker內部使用一些cgroups 。
我發現這方面的文檔很少,所以我想把它們合到一塊發一篇關于它的博客。
啟用LXC驅動
假設你已經在Ubuntu 14.04上安裝了Docker,你仍舊需要啟用LXC驅動。
要開啟該項,你需要這樣做
$ apt-get install -y lxc $ echo 'DOCKER_OPTS="--exec-driver=lxc"' \ | tee -a /etc/default/docker $ service docker restart`
啟用兩個不沒有cgroup策略的容器
讓我們先加載兩個容器,兩個的CPU都要最大化(通過運行md5sum /dev/urandom)
$ 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內核。
用低優先級啟動容器:
$ docker run -d --name='low_prio' \ --lxc-conf="lxc.cgroup.cpu.shares=250" \ --lxc-conf="lxc.cgroup.cpuset.cpus=0" \ busybox md5sum /dev/urandom
用高優先級啟動容器:
$ 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
原文地址:http://blog.viktorpetersson.com/post/115562026784/using-cgroups-with-docker-on-ubuntu-14-04
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!