如何在容器运行过程中对容器的资源限制进行调整

背景

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参数

上一篇:Docker: 限制容器可用的 CPU


下一篇:基于QTE的无线KTV点播系统开发环境建立