有人能帮我吗?
行为
我正在使用 qemu-kvm 运行多个虚拟机,在创建正在运行的虚拟机的前几个快照时,它们创建速度非常快(大约 10 秒)。然而,在一定数量的快照之后,它们的创建性能突然受到巨大影响,从大约 10 秒下降到 10 或 20 分钟(取决于虚拟机的 qcow2 磁盘的大小)。
有趣的是,持续时间的增加并不是逐渐增加的(例如,第一个快照需要 10 秒,第二个需要 60 秒,第三个需要几分钟),而是在从一个快照创建到下一个快照创建之间的某个时刻急剧增加。我无法弄清楚这种增加是由于什么情况发生的,我曾尝试创建一个接一个的快照,其中 VM 处于完全相同的状态,以排除任何来自 VM 内部的因素。但是,虽然 VM 在各个快照中的状态基本保持不变,但快照创建的持续时间在某个时刻激增。
一个虚拟机大约使用了 50GB,在拍摄 4 或 5 个快照之后就出现了性能下降,而另一个全新安装了 ubuntu 的虚拟机只使用了几个 GB,在拍摄 19 个快照之后就出现了性能下降。
此外,此设置在我之前的 Linux 主机(即 Linux Mint)上也运行正常。现在我已更改为 Fedora SilverBlue,并出现了此问题。
我到目前为止尝试过的方法
我已经使用 virt-manager gui 或 virsh 创建了快照(使用date
before 和 after 来指示持续时间),请注意,这是一个小型 VM,较大的 VM 需要 20 分钟:
[root@fedora-silverblue steff]# date; virsh --debug=0 snapshot-create-as --domain dev_base --name s25 ; date
Wed 16 Mar 09:52:08 CET 2022
snapshot-create-as: domain(optdata): dev_base
snapshot-create-as: name(optdata): s25
snapshot-create-as: found option <domain>: dev_base
snapshot-create-as: <domain> trying as domain NAME
Domain snapshot s25 created
Wed 16 Mar 10:03:02 CET 2022
此命令需要10分钟。
我搜索过此问题并发现以下讨论,这些讨论表明存在类似问题,但解决方案对我来说不起作用:
这篇文章的结论是,该问题已由 qemu 在另一个版本中修复,但该版本比我当前的版本旧得多: https://bugzilla.redhat.com/show_bug.cgi?id=988436
这篇文章通过删除所有预先存在的快照解决了这个问题,这对我也有用。但是,删除之前的所有快照违背了我使用它们的目的(能够恢复到以前的运行状态),所以这不是一个选择: https://github.com/cuckoosandbox/cuckoo/issues/1905
尚未解决且未解决的错误: https://bugs.launchpad.net/ubuntu/+source/qemu-kvm/+bug/741887
由于其他一些讨论表明有关缓存的一些问题,我也尝试关闭主机并再次打开,但没有任何变化。
有些帖子讨论了外部快照,但我希望将其排除在外,因为它们的处理比内部快照(创建配置文件、定义持久性路径等)的开销更大。而且由于内部快照是默认选项,我希望尽可能接近原始设置。
解释
由于在之前没有其他快照存在的情况下会快速创建快照,因此其他快照的预先存在必然会在某处引入一些沉重的开销或冲突。
软件及版本
我正在运行 fedora silverblue 35 和以下 kvm 相关软件:
[root@fedora-silverblue steff]# uname -r
5.16.9-200.fc35.x86_64
[root@fedora-silverblue steff]# rpm -q qemu qemu-kvm libvirt virt-manager
qemu-6.1.0-14.fc35.x86_64
qemu-kvm-6.1.0-14.fc35.x86_64
libvirt-7.6.0-5.fc35.x86_64
virt-manager-3.2.0-4.fc35.noarch
虚拟机有 8GB RAM,其图像格式为qcow2
问题
- 知道可能是什么原因造成的吗?
- 在哪里可以找到更详细的调试信息?