背景
docker run和docker create有一些參數可以對容器使用的主機資源進行限制。這些主機資源主要有如下類型
- cpu排程
- 記憶體使用量
-
io權重
但是一旦建立了容器,容器在運作中或者不在運作中,如何調整這些資源參數呢?
動态調整資源限制
docker提供了update指令,可以對容器進行資源限制的調整,無論這個容器是否在運作中。
參數名 | 說明 | 備注 |
---|---|---|
block-weight | 塊io權重10-1000之間可設定,0表示關閉此功能 | Na |
cpu-period | cpu cfs(linux的絕對公平排程器,linux系統預設的排程器)的周期 | |
cpu-quota | cpu cfs排程器的quota | |
cpu-rt-period | 針對實時程序,設定cpu實時排程器周期,機關為us | |
cpu-rt-runtime | 針對實時程序,設定在一個周期之内可以運作的時間 | |
cpu-share/-c | cpu份額 | 設定當cpu資源受限時刻,本容器在所有容器中cpu資源使用權重,預設為1024.增加或減少此值修改了此容器的權重。當主機資源充分時刻,此參數不起作用。 |
cpus | cpu資源比率 | 其實就是cpu-quota/cpu-period的比率,隻在docker13以後可用 |
cpuset-cpus | cpu親和性 | |
cpuset-mems | cpu的numa節點親和性 | |
memory/-m | 記憶體限制 | 硬限制,設定此值時需要帶機關b,k,m和g |
memory-reservation | 軟限制,一定需要小于-m參數 | |
memory-swap | 設定容器記憶體+swap記憶體的總限制大小 | 一定大于-m參數 |
動态調整restart政策
docker update 可以對—restart參數進行更新
docker update —restart=on-failure:3 zxy
如果docker run啟動帶-rm參數,那麼不能再docker update設定restart參數