qemu live migration 优化 1(compress and xbzrle)

本文探讨了QEMU动态迁移中的compress和xbzrle优化选项。compress通过对内存数据压缩减少带宽需求,但可能增加CPU消耗和迁移时间。xbzrle通过找出内存变化部分进行压缩传输,尤其适用于频繁写入的工作负载,能显著减少迁移时间。测试显示xbzrle能有效提高迁移效率。
摘要由CSDN通过智能技术生成

qemu本身对动态迁移有丰富的优化项,通过qemu monitor可以查看

(qemu) info migrate_capabilities
xbzrle: off
rdma-pin-all: off
auto-converge: off
zero-blocks: off
compress: off
events: off
postcopy-ram: off
x-colo: off
release-ram: off
block: off
return-path: off
pause-before-switchover: off
x-multifd: off
dirty-bitmaps: off
postcopy-blocktime: off
late-block-activate: off

有部分优化选项比较常见,比如postcopy-ram, compress。查询了一下这些优化项,有些优化项完全没有资料,看来只能看源码来了解它的作用了。接下来会尝试这些优化项并学习其原理,看看它们对于迁移优化的程度。


1. compress

打开compress的选项后,服务器会在迁移前对ram中的数据做压缩,在测试中,压缩的比率差异很大,从10%到80%,对于带宽不足的虚拟机迁移效率提升有所帮助。但是做压缩的时候会对cpu有额外的消耗,并且压缩也会耗时,所以在带宽足够大的情况下,迁移前进行压缩反而会导致动态迁移时间变长。

可以开启压缩和解压的多线程,可以加速压缩的速率,默认情况下配置的是compress 8 threads, decompress 2 threads,由于用的压缩算法是zlib,压缩和解压的速率差4倍,所以配置多线程时建议压缩线程数是解压线程数的四倍。

此外,可以对压缩的比率和压缩速度进行调节。level 0代表不压缩,level 1代表压缩速度最快但是压缩比率最低,level 9代表压缩比率最高,但是相应压缩速度也最慢。

虚拟机中模拟内存占用,脚本

[root@localhost ~]# cat make_cache_2.2G.sh
#!/bin/bash -x
mount -t ramfs ramfs z/
cp 800m_file z/1
cp 800m_file z/2
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           4.9G        180M        2.5G         11M        2.2G        4.0G
Swap:          4.0G          0B        4.0G

把两个800m的文件放到ramfs中,可以看到memory中buff/cache已经上升到了2.2G


在qemu monitor 中配置

源端服务器


                
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值