我们在一台鲲鹏服务器上使用BoostKit的虚拟化加速特性,主要启用了vhost多队列和IO直通。虚拟机内部跑的是一个数据库应用,对磁盘IO延迟比较敏感。开启加速特性后,平均IO延迟确实下降了大约百分之二十,但出现了一个新问题:磁盘IO延迟会呈现周期性的剧烈抖动,大约每隔五分钟,延迟就会从1毫秒左右突然飙升到50毫秒以上,持续十几秒后又恢复正常。这个抖动周期非常规律,几乎像时钟一样精准。关闭vhost多队列后抖动消失,但平均延迟也回到了原来的水平。我们检查了宿主机的负载,CPU和内存使用率都不高,磁盘本身的性能测试也没有发现硬件问题。虚拟机内部用iostat观察,抖动发生时磁盘利用率并没有明显变化,但await指标大幅上升。想请教这种周期性抖动的可能原因是什么,是不是某个后台任务与vhost的轮询机制产生了冲突。
我们在一台鲲鹏服务器上使用BoostKit的虚拟化加速特性,主要启用了vhost多队列和IO直通。虚拟机内部跑的是一个数据库应用,对磁盘IO延迟比较敏感。开启加速特性后,平均IO延迟确实下降了大约百分之二十,但出现了一个新问题:磁盘IO延迟会呈现周期性的剧烈抖动,大约每隔五分钟,延迟就会从1毫秒左右突然飙升到50毫秒以上,持续十几秒后又恢复正常。这个抖动周期非常规律,几乎像时钟一样精准。关闭vhost多队列后抖动消失,但平均延迟也回到了原来的水平。我们检查了宿主机的负载,CPU和内存使用率都不高,磁盘本身的性能测试也没有发现硬件问题。虚拟机内部用iostat观察,抖动发生时磁盘利用率并没有明显变化,但await指标大幅上升。想请教这种周期性抖动的可能原因是什么,是不是某个后台任务与vhost的轮询机制产生了冲突。