在 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
正如你所看到的,它奏效了!折騰快樂!
相關文章
- ubuntu 14.04 install docker latest dockerUbuntuDocker
- Docker proxy setting ubuntu 14.04DockerUbuntu
- Ubuntu 14.04 LTS 安裝DockerUbuntuDocker
- 在Ubuntu中安裝Docker和docker的使用UbuntuDocker
- 在 Ubuntu 14.04 下安裝 mysql 5.7.10UbuntuMySql
- Ubuntu 14.04下安裝SecureCRT 以及使用技巧UbuntuSecurecrt
- Ubuntu 14.04 下安裝 OpenCVUbuntuOpenCV
- 在 Ubuntu 14.04 上安裝 Ubuntu Tweak 0.8.8Ubuntu
- Cinnamon和Unity在Ubuntu14.04上的對抗UnityUbuntu
- 【Docker快速入門】在Ubuntu下安裝DockerDockerUbuntu
- ubuntu14.04下navicat破解方法Ubuntu
- Ubuntu14.04下安裝genymotionUbuntu
- Ubuntu 14.04下NFS安裝配置UbuntuNFS
- 深入理解 Docker 核心原理:Namespace、Cgroups 和 RootfsDockernamespace
- ubuntu14.04環境安裝docker體驗UbuntuDocker
- 在Ubuntu14.04上快速部署OpenStackUbuntu
- Ubuntu14.04下Dipy包安裝Ubuntu
- Ubuntu14.04 LTS下安裝jdkUbuntuJDK
- 在WSL2的Ubuntu中安裝和使用Docker/PodmanUbuntuDocker
- Docker 技術基礎之 CGroupsDocker
- 在ubuntu14.04上配置SNMPv3Ubuntu
- 怎樣在Ubuntu 14.04中安裝JavaUbuntuJava
- 在 Ubuntu 14.04 中配置 PXE 伺服器Ubuntu伺服器
- Ubuntu14.04下MRtrix3安裝Ubuntu
- Ubuntu 14.04下升級GNOME至3.12Ubuntu
- Ubuntu14.04下安裝的QQ版Ubuntu
- 在 Ubuntu 16.04 中使用 Docker ComposeUbuntuDocker
- 在Vmware Player 7中安裝Ubuntu14.04Ubuntu
- 在Ubuntu 14.04上備份,還原和遷移MongoDB資料庫UbuntuMongoDB資料庫
- Ubuntu (14.04)下執行 DotNet Core 步驟Ubuntu
- Ubuntu14.04使用root帳戶登入Ubuntu
- [Docker]在Ubuntu容器中建立sudo使用者DockerUbuntu
- ubuntu14.04下多個GCC版本的切換UbuntuGC
- ubuntu 14.04 下通過apt-get 安裝jdkUbuntuapt-getJDK
- Ubuntu14.04下安裝OpenCV3.0經驗UbuntuOpenCV
- 使用nice,cpulimit和cgroups限制程式CPU使用率MIT
- Ubuntu14.04搭建LAMPUbuntuLAMP
- Ubuntu14.04搭建LNMPUbuntuLNMP