KVM-QEMU的vCPU调度算法与Xen Credit算法对比分析

本文对比分析了KVM-QEMU的vCPU调度算法与Xen Credit算法。vCPU在KVM环境中是QEMU进程中的线程,其调度依赖于Linux内核的CFS算法。CFS通过红黑树确保公平性,而Xen Credit算法在每个物理CPU上维护VCPU队列,使用信用系统调整优先级。Credit算法在IO密集型任务中可能存在响应时间问题,而CFS能提供更好的实时性。
摘要由CSDN通过智能技术生成

KVM-QEMU的vCPU调度算法与Xen Credit算法对比分析

1 vCPU的概念

QEMU/KVM为Guest OS提供了完整的硬件系统环境,Guest OS所占有的CPU实际上是vCPU。在KVM环境中,每个客户机是一个linux进程(qemu进程),而每一个vcpu在宿主机中是QEMU进程派生的普通线程。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-73xfbWZS-1586058741017)(file:/Users/apple/Desktop/picture/pic2.png)]

而Guest应用线程调度到Guest VCPU的过程由Guest OS负责,全虚拟化的情况下,Guest OS的调度和在物理机下没有区别。

在系统底层CPU硬件中需要有硬件辅助虚拟化技术的支持,比如Intel VT 或者AMD-V。宿主机就运行在硬件之上,KVM内核部分是作为可动态加载内核模块运行在宿主机中的。其中一个模块是和硬件平台无关的实现虚拟化核心基础架构的kvm模块,另一个是硬件平台相关的kvm_intel模块。

KVM中的一个客户机是作为一个用户空间进程(qemu-kvm)运行。和其他普通的用户空间进程一样,由内核调度。多个客户机就是宿主机中的多个QEMU进程,而一个客户机的多个vCPU就是一个QEMU进程中的多个线程。

2 Linux内核的进程调度器

因为vCPU实际上是宿主机上的一个线程,所以vCPU的调度是依赖宿主机Linux内核中的CPU调度算法。Linux调度算法有三个比较著名:

  1. O(1) scheduler
  2. Comlete
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值