首頁 > 軟體

在 Ubuntu 14.04 下使用 cgroups 和 Docker

2020-06-16 18:02:40

作為我在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

正如你所看到的,它奏效了!折騰快樂!

CentOS 6/7系列安裝Docker http://www.linuxidc.com/Linux/2014-07/104768.htm 

Docker的搭建Gitlab CI 全過程詳解 http://www.linuxidc.com/Linux/2013-12/93537.htm 

Docker安裝應用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

在 Docker 中使用 MySQL http://www.linuxidc.com/Linux/2014-01/95354.htm

在Ubuntu Trusty 14.04 (LTS) (64-bit)安裝Docker http://www.linuxidc.com/Linux/2014-10/108184.htm 

Docker安裝應用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Ubuntu 14.04安裝Docker  http://www.linuxidc.com/linux/2014-08/105656.htm 

阿里雲CentOS 6.5 模板上安裝 Docker http://www.linuxidc.com/Linux/2014-11/109107.htm 


IT145.com E-mail:sddin#qq.com