docker的資源控制:
對容器的使用宿主機的資源進行限制
cpu 內存 磁盤i/0
docker使用linux自帶的功能cgroup
control grouos是linux內核系統提供的一種可以限制,記錄,隔離進程所使用的物理資源
control grouos是linux內核系統提供的一種可以限制,記錄,隔離進程組所使用的物流資源的機制
docker借助這個機制,來實現資源的控制、
cgroup 本身是提供講進程分組化管理和接口的基礎結果,分配控制的機制來實現資源控制
host:容器和宿主機公用一個網絡命名空間
container容器和容器之間公用一個網絡命令空間
其他的資源依然是隔離的、
1、cpu資源控制
Linux通過CFS(Completely Fair Scheduler 完全公平調度器),來調度各個進程對cpu的使用
CFS的調度100ms
我們也可以自定義容器的調度周期,已經在這個周期時間之內各個容器能夠使用cpu的調度時間
--cpu-period 設置容器調度cpu的調度時間
--cpu-quota 設置在每個周期內,容器可以使用cpu的時間
可以配用使用
CFS周期的有效范圍:1ms-1s --cpu-period 1000-1000000
容器使用cpu的配額時間必須,大于1ms, --cpu-quota的值,必須是>=1000
docker run -itd --name test1 centos:7 /bin/bash
cd /sys/fs/cgroup
cat cpu.cfs_quota_us
-1
如果配置是-1,那么容器在使用宿主機cpu的的時間不做任何限制
CFS調度的周期長度,微妙,在每個周期內,容器可以使用指定比例的cpu時間,默認情況都是100毫秒
CFS調度器;100毫秒就是定義了一個周期,在周期內,調度任務(容器)的基本時間單位
也就是100毫秒一次調度器請求cpu資源,然后把內核cpu資源給容器
cpu.cfs_quota_us :調度請求之后,根據配額,內核跟配給容器使用的cpu時間
vim cpu.sh
docker stats test1/if 可以容器的運行占用宿主機
docker ps -a
cd /sys/fs/cgroup/cpu
cd docker
cd id