当前位置:   article > 正文

block中断 virtio_虚拟化场景IO性能优化案例分享

virtio io优化

# 问题背景

虚拟机(8C16G)裸盘(预分配80G)fio 4k随机写测试(4jobs,iodepth为32)TaiShan 200服务器性能不符合预期,需要进行调优。

# 原因分析

1. 执行测试命令,观察TaiShan服务器表现:物理机上,发现kvm进程cpu占用较高,进一步分析发现TaiShan上kvm线程200+;虚拟机上,TaiShan cpu0占用率很高,其中软中断占比高的不合理。怀疑是虚拟机实现方式的问题,发现TaiShan虚拟机测试磁盘类型为virtio-scsi-device(可以使用virtio-block-device,block设备比scsi设备IO路径稍微短些),且当前测试使用的qemu版本较低,可能还不支持armv8新特性。

2. 修改TaiShan虚拟机启动参数,将测试盘类型调整为virtio-block-device,性能有小幅提升,物理机上kvm线程数从200+降低到80以内,虚拟机上cpu0的软中断也较低到合理范围,但系统占用又变得很高,说明kvm线程和软中断高是磁盘类型导致,此时是cpu瓶颈。无法给TaiShan虚拟机指定cpu asimd特性,显示参数错误。

3. 将虚拟机vcpu一对一绑核,关闭irqbalance,给fio测试程序绑核,几乎没有性能提升。开启大页内存,没有性能提升。

4. 分析fio系统调用,发现clock_gettime系统调用耗时有时达到2ms,耗时很高,此客户机操作系统为centos7.3,更换为centos7.7,fio系统调用看不到clock_gettime函数,但是性能没有提升。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/885085
推荐阅读
相关标签
  

闽ICP备14008679号