知识卡片
vHost到vhost-user的性能优化路径
内容
virtio的原生实现里,宿主机端驱动跑在用户态QEMU中,Guest每次发包都要经历”Guest→内核→ QEMU→内核→Guest”的多次特权级切换和数据拷贝,路径长、开销大。vHost把宿主机端驱动搬进 Linux内核,Guest到内核只需一次切换,减少了一趟用户态往返。但内核态转发仍绕不开中断、软 中断和内核线程调度的开销,于是vhost-user把这部分逻辑再搬到用户态,两个用户态进程之间靠 共享内存(virtio环)+ eventfd事件通知直接交互,彻底跳过内核转发路径。三代方案的演进主线 其实是同一件事:不断压缩特权级切换和数据拷贝的次数,这是几乎所有I/O虚拟化性能优化的共同 母题,与[[半虚拟化I/O为什么更快]]是同一思路在不同层面的延伸。
参考来源
《混合云架构》第2章《阿里云基础技术》2.1 IaaS