Migration 如何测量迁移时间和停机时间

Migration 如何测量迁移时间和停机时间,migration,virtual-machine,kvm,Migration,Virtual Machine,Kvm,[1] 我使用KVM和virt manager将虚拟机从一个系统迁移到另一个系统 要计算迁移时间,我在主机终端运行以下命令: time virsh migrate --live UBVM1 qemu+ssh://server1.example.com 它显示以下输出 real 0m15.430s user 0m0.031s sys 0m0.015s 现在,我有点困惑,上面的哪个值是迁移时间,您感兴趣的是real值,它是timed命令开始到完成之间经过的实际(“挂钟”)时间量 至于

[1] 我使用KVM和virt manager将虚拟机从一个系统迁移到另一个系统

要计算迁移时间,我在主机终端运行以下命令:

time virsh migrate --live UBVM1 qemu+ssh://server1.example.com
它显示以下输出

real    0m15.430s
user    0m0.031s
sys 0m0.015s

现在,我有点困惑,上面的哪个值是迁移时间,您感兴趣的是
real
值,它是
time
d命令开始到完成之间经过的实际(“挂钟”)时间量

至于其他数字,
user
是CPU运行用户模式代码所花费的时间量,
sys
是CPU在内核模式(
sys
tem)代码上花费的时间量。在这种情况下,这些数字比实际时间要小得多,因为VM迁移主要是一项I/O任务(通过网络发送数据),除了等待网络完成数据移动外,不需要CPU做太多其他事情


在关于如何确定迁移期间的停机时间的评论中,除了回答OP的后续问题外:

原则上,进行实时迁移时不会出现任何停机。实时迁移过程的工作方式是,它以“暂停”状态启动目标节点上的VM,通过网络发送VM RAM的内容,同时VM在源节点上保持活动状态,然后继续发送更改RAM内容的更新,直到VM的两个版本具有相同的内存内容。一旦它们完全相同,目标节点上的虚拟机将启动,而源节点上的虚拟机将同时关闭。当然,同步永远不可能是绝对完美的,但是两个实例都没有运行的间隔应该在几毫秒左右,如果不是更短的话


但是,在实践中,节点的虚拟网桥和物理网络基础设施需要更长的时间才能识别到VM IP地址的流量需要重新路由到不同的物理接口(即,数据包需要停止发送到源节点,转而发送到目标节点)。在我在我的环境中所做的几次测试中,在执行实时迁移后,VM通常在30秒内不可访问。要在您的环境中测试这一点,请在移动迁移VM的IP地址之前对其启动连续的
ping
,然后在迁移完成后查看ping输出,查看VM停止响应的时间。

谢谢,先生,还请告诉我如何测量停机时间。我尝试了所有可能的解决方案,但没有得到相同的结果。@aditya-我编辑了我的答案,以涵盖您关于停机时间的问题,因为我有点太想发表评论了。