在docker-compose中,可以通过下面方式限定容器使用的资源,比如:
deploy:
resources:
limits:
cpus: "2.00"
memory: 5G
现在的问题是,在网上搜索到的资料,关于 limits.cpus
参数的含义,众说纷纭,有说是cpu核心数,有说是cpu使用百分比。
那么对于 8核心的云服务器,如果想要限制容器最多使用到 所有cpu资源的 80%,那么应该怎么写呢?
写成:cpus: "0.80"
还是 cpus: "6.40"
?
是数量,不是百分比。
看官方文档:
注意加粗的部分,“以内核数量为单位”。
P.S.1 说是百分比的倒也不算错,只是可能你理解错意思了。比如我有 4 个核、然后 cpus 设成 2.0,那么不是说限制成了最多只有 2 个核在工作、另 2 个核不工作,而是说这 4 个核都可能工作、但加一起的利用率是 200%。所以你看它的值是个小数,要不然核心数怎么也不可能出现“半个”这种说法,只能是“50% 利用率”。
P.S.2 你要真的是想设置“最多只有几个核工作”,那也有。2.2 之后有了
cpu_count
这个参数,它的值是一个整数。