首页/云/Docker 容器速查/docker run --cpu-period / --cpu-quota 精确配额
资源与安全50 条

docker run --cpu-period / --cpu-quota 精确配额

用周期与配额组合描述 CPU 上限:周期默认 100000 微秒,quota 50000 表示每周期使用一半核时间,是 --cpus 的底层表达。

Docker 容器速查云更新于 2026-10-13

周期与配额怎么配合

用周期与配额组合描述 CPU 上限:周期默认十万微秒,配额设为五万表示每个周期使用一半的核时间。它是更直观的核数上限参数的底层表达,适合需要精确控制周期行为的场景。

基本信息

语法--cpu-period=<微秒> 与 --cpu-quota=<微秒>
默认周期100000 微秒
换算关系配额除以周期等于可用核数
直观替代直接指定核数的参数
核对docker inspect 的 CpuQuota 与 CpuPeriod

典型使用场景

  • 需要精确控制 CPU 周期行为时使用
  • 理解其他 CPU 上限参数的底层含义
  • 排障时核对实际生效的配额值
  • 压测时构造精确的算力上限
  • 对比不同写法是否等价

设置与核对

设置与核对
docker run -d --cpu-period=100000 --cpu-quota=50000 --name half app/api:1.4.2   # 半个核
docker inspect -f '{{.HostConfig.CpuQuota}}/{{.HostConfig.CpuPeriod}}' half      # 核对生效值
docker run -d --cpus=0.5 --name half2 app/api:1.4.2                              # 等价写法

参数与换算

参数含义示例
周期调度周期长度100000 微秒
配额每周期可用时间50000 微秒
换算配额除以周期等于 0.5 个核
等价写法直接指定核数0.5 与上面等价
一般场景直接用表达核数的参数更直观;只有需要精确控制周期行为时才用周期与配额组合。
配额与周期写反会让限额数量级错得离谱,换算关系上线前先心算一遍。
核对生效值时两个字段要一起看,只看一个无法判断实际允许的算力。
两个参数要成对出现,只设置其中一个不会有预期效果。
多核机器上配额小于周期时容器无法占满整核,表现为性能被硬性压制。
与权重类参数混用时两者共同生效,排查时几个参数都要核对。
同一容器上同时用两种方式限制 CPU 时,后写入的配置会覆盖前面的写法,排查前先确认最终生效值,而不是照抄启动命令。
周期与配额的实现细节在不同内核版本上有差异,跨内核迁移时以实际压测结果为准,不要只用纸面换算下结论。

易错点

  • 配额与周期写反会让限额数量级错得离谱,上线前先心算换算关系
  • 两个参数只设一个,配置看起来写了却没有预期效果
  • 核对时只看配额不看周期,无法判断实际算力上限
  • 与权重类参数混用后只看一个,得出错误结论

数据来源与参考

  • Docker 官方 CLI 参考:--cpu-period 与 --cpu-quota(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌