今天介绍一个比较小众的优化项,auto-converge。
auto-converge
通过上面两节优化可以了解到,对于动态迁移来说,dirty page的生成速度影响了动态迁移的速度,如果dirty page生成速度过快,带宽又不够大,动态迁移就会处在一直无法完成的状态。
为了克服这个问题,有两个角度,第一是尽快把新产生的dirty page 传输到目的服务器,让传输速度大于dirty page生成速度,从而让动态迁移顺利完成;第二是让dirty page生成速度变慢,这样也能够使得动态迁移完成。auto-converge就是用了第二种方法帮助完成动态迁移。
把auto-converge打开后,当进行动态迁移时,qemu会降低虚拟机的运行速度,从而减少写内存的操作,这样使得dirty page生成速度降低。auto-converage会不断增加vcpu的限制(最多到99%),直到迁移成功。
auto-converage 包含两个可调参量:
cpu-throttle-initial: 初始降低vcpu性能的百分比,默认值是20%。
cpu-throttle-increment:如果迁移不成功,每次增加对vcpu性能的限制百分比,默认值是10%。
setting
r/w load 2G
#########################################################################################
1g | downtime default | auto-converge on | complet