根据libvirt 文档:
配置为 2048 的 VM 将获得两倍于配置为 1024 的 VM 的 CPU 时间。
我还听说过,具有 2 个 vCPU 的 VM 的 CPU 时间是具有 1 个 vCPU 的 VM 的两倍。这个对吗?然后,“共享”元素是否也考虑到了这一点?
例如,这两种情况中哪一种是正确的?
- 1 个 vCPU x 10 个份额 = 10 个 CPU 时间单位
- 2 个 vCPU x 10 个份额 = 20 个 CPU 时间单位
- 1 个 vCPU x 20 个份额 = 20 个 CPU 时间单位
- 2 个 vCPU x 20 个共享 = 40 个 CPU 时间单位
或者:
- 1 个 vCPU x 10 个份额 = 10 个 CPU 时间单位
- 2 个 vCPU x 10 个共享 = 10 个 CPU 时间单位
- 1 个 vCPU x 20 个份额 = 20 个 CPU 时间单位
- 2 个 vCPU x 20 个份额 = 20 个 CPU 时间单位
感谢您的阅读!
“shares”可调参数是针对整个 VM 计算的,不考虑 vCPU 计数。因此,您可能希望在扩大 vCPU 数量时扩大份额价值。
请注意,这是一个相对优先级,而不是时间的绝对度量。因此,只有当您过度使用主机 CPU 时,它才会真正生效,这样来自不同来宾的 vCPU 就会相互竞争主机 CPU 时间。所以你并没有真正给出“NNN 单位的 CPU 时间”。它的意思是,在 2 个客人都需要 CPU 时间并且没有足够的空闲时间来满足两者的期间,可用的空闲 CPU 时间将分配给与份额比例匹配的 VM。