目录
vCPU 的调度与性能问题
注:上图为 vSphere 的 vCPU 调度示意图,与 KVM 大同小异,可以用作参考。
既然 HostOS 将 vCPU 当普通线程来进行调度,那么 vCPU 的调度与性能问题实际上就是 Linux 线程在多处理器计算平台中的调度与性能问题。关于这个问题我们曾经在《多进程、多线程与多处理器计算平台的性能问题》一文中讨论过,这里不再赘述。简单来说,提高虚拟机 vCPU 的性能,需要贯彻三点原则:
- 减少多线程上下文切换的性能损耗
- 减少用户线程模式切换的性能损耗
- 提高高速缓存的命中率
而实现这些原则的手段大致上有两种:
- 规划出给 Guest 专用的 pCPU s,并且 vCPUs 和 pCPUs 所拥有的 Cores 数量相近
- 将 vCPU 绑定到指定的 pCPU 上运行
KVM 本身就支持 CPU 绑定的相关功能,使用非常简单:
root@devstack:~# virsh help
...