[发明专利]一种降低VCPU热度的KVM虚拟机热迁移优化方法在审
申请号: | 201711153352.0 | 申请日: | 2017-11-18 |
公开(公告)号: | CN107832118A | 公开(公告)日: | 2018-03-23 |
发明(设计)人: | 李传云;杨朝晖 | 申请(专利权)人: | 浙江网新恒天软件有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/48 |
代理公司: | 杭州求是专利事务所有限公司33200 | 代理人: | 刘静,邱启旺 |
地址: | 310012 浙江省杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 降低 vcpu 热度 kvm 虚拟机 迁移 优化 方法 | ||
技术领域
本发明涉及KVM虚拟化系统,尤其涉及一种降低VCPU热度的KVM虚拟机热迁移优化方法。
背景技术
KVM虚拟机热迁移主要包括内存迁移、设备状态迁移、关闭虚拟机、恢复虚拟机几个阶段,根据这几个阶段的不同顺序,热迁移算法主要可以分为两类,即预拷贝(pre-copy)迁移算法和后拷贝(post-copy)迁移算法。KVM热迁移通过预拷贝(pre-copy)迁移算法实现,通常情况下,在迭代拷贝阶段,脏页会越来越少,但在虚拟机高负载情况下,迭代拷贝阶段内存被频繁访问,或是网络带宽较低、网络拥堵,脏页达不到停止拷贝的阀值,这将导致迁移时间过长,造成热迁移不能有效完成问题。
发明内容
本发明的主要目的在于针对KVM虚拟机热迁移算法中热迁移不能有效完成的问题,提出一种自适应降低VCPU热度优化方法。
本发明的目的是通过以下技术方案来实现的:一种降低VCPU热度的KVM虚拟机热迁移优化方法,该方法首先获取脏页量,若脏页量低于最大停机脏页量阀值,则进入停机拷贝阶段,否则每隔100ms检测一次slowdown的标志,slowdown代表是否开启降低VCPU热度的机制;若slowdown为false,则判断前两次和本次的脏页量,若脏页量连续两轮上升,说明脏页产生速率很快,将slowdown设置为true,开启降低VCPU热度的机制,往每一个VCPU线程插入一个stub_time时长的sleep,同时初始化stub_time;接下来的每一轮迭代前均需判断上一轮脏页量与本轮脏页量的关系,若脏页量减少,stub_time的值保持不变;若脏页量未减少,则指数增加stub_time,stub_time的大小不能超过160ms。
本发明的有益效果是:对于一些内存高负载的虚拟机,如正在执行编译内核任务的虚拟机,由于其脏页产生速率高于内存传输速率,因此迁移不能有效完成。本发明通过往VCPU线程周期性插入sleep任务,减少虚拟机运行时间,从而达到降低脏页产生速率的目的,使热迁移顺利结束;改进后,即使在内存高负载情况下,可以顺利结束迁移。
附图说明
图1为KVM虚拟机热迁移流程;
图2为自适应降低VCPU热度优化方法流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明。
(1)VCPU线程执行自定义任务
QEMU中的VCPU线程的工作主要是负责调用KVM模拟CPU的执行,主要依靠一个while循环,如下所示:
其中kvm_cpu_exec负责调用KVM_RUN陷入VMX非根操作模式去执行客户机代码,而qemu_kvm_wait_io_event负责执行额外的任务;QEMU中的CPU包括一个queued_work_first成员,表示该CPU需要执行的任务队列,每次进入CPU之前qemu_kvm_wait_io_event都要先执行该工作队列;因此可以将一些自定义任务加入这个队列,VCPU线程每次从KVM返回后,要先执行完自定义的任务才能再次进入KVM。
(2)执行stub job降低VCPU热度
本发明将利用VCPU线程执行自定义任务的特性,通过插入stub job形式,减少虚拟机VCPU的运行时间,达到降低VCPU热度、减小脏页产生速率的目的。一个stub job是指占据CPU时间,但不运行的任务,在优化方案中,本发明定义了如下所示的stub job,即通过执行了一个stub_time时间片段的sleep,在这段时间内VCPU将被挂起,虚拟机无法执行,脏页率迅速下降。
由于是强行往vcpu线程插入stub job,脏页会迅速减小,但这也意味着虚拟机的性能将受到较大影响,因此需要选择合适的时机开启该项功能。假如迁移一开始就开启该项功能,虚拟机功能将受到很大影响,只有当脏页产生速率大于或等于脏页传输速率时,开启该功能才有较大的意义。此外,stub_time的值该如何确定,假如stub_time时间太短,降低VCPU热度的效果不明显;假如太长,会对虚拟机性能造成重大影响。针对上述情况,本发明提出了一种自适应降低VCPU热度的方法,在适当的时机开启降低VCPU热度的机制,同时会将stub_time初始化为一个值,然后根据迁移时脏页产生速率动态调整stub_time的值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江网新恒天软件有限公司,未经浙江网新恒天软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711153352.0/2.html,转载请声明来源钻瓜专利网。