背景
docker run和docker create有一些參數可以對容器使用的主機資源進行限制。這些主機資源主要有如下類型
- cpu調度
- 內存使用量
- io權重
但是一旦創建了容器,容器在運行中或者不在運行中,如何調整這些資源參數呢?
動態調整資源限制
docker提供了update命令,可以對容器進行資源限制的調整,無論這個容器是否在運行中。
參數名 | 說明 | 備註 |
---|---|---|
block-weight | 塊io權重10-1000之間可設置,0表示關閉此功能 | Na |
cpu-period | cpu cfs(linux的絕對公平調度器,linux系統默認的調度器)的週期 | Na |
cpu-quota | cpu cfs調度器的quota | Na |
cpu-rt-period | 針對實時進程,設置cpu實時調度器週期,單位爲us | Na |
cpu-rt-runtime | 針對實時進程,設置在一個週期之內可以運行的時間 | Na |
cpu-share/-c | cpu份額 | 設置當cpu資源受限時刻,本容器在所有容器中cpu資源使用權重,默認爲1024.增加或減少此值修改了此容器的權重。當主機資源充分時刻,此參數不起作用。 |
cpus | cpu資源比率 | 其實就是cpu-quota/cpu-period的比率,只在docker13以後可用 |
cpuset-cpus | cpu親和性 | Na |
cpuset-mems | cpu的numa節點親和性 | Na |
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參數