7.7 虚拟机磁盘多队列

虚拟机磁盘通常有virtio-block,virtio-scsi两种半虚拟化类型磁盘,和virtio-net一样半虚拟化类型磁盘也支持多队列方式。和virtio网卡一样,virtio磁盘使用多队列的数目最好也不要超过vcpu的数目,这样每个vcpu可以处理单独的queue及中断。

1. libvirt配置虚拟磁盘多队列

  1. virtio-block类型

     <disk type='file' device='disk'>
       <driver name='qemu' type='qcow2' queues='N'/>         //N队列
       <source file='/path/data.qcow2'/>
       <target dev='vda' bus='virtio'/>
       <address type='pci' domain='0x0000' bus='0x09' slot='0x00' function='0x0'/>
     </disk>
    
  2. virtio-scsi类型

    <controller type='scsi' index='0' model='virtio-scsi'>
    <driver queues='N' />         //N队列
     </controller>
    

2. 虚拟机中多队列中断均衡

虚拟机中需要检查irqbalance服务状态,确保每个队列能够均匀分布到不同的vcpu上,也可以手动设置/proc/irq/{irqnum}/smp_affinity绑定中断的亲和性

            CPU0       CPU1       CPU2       CPU3   
  38:     737452          0          0          0          0  PCH-MSI-EXT   51  virtio6-req.0
  39:          0     923720          0          0          0  PCH-MSI-EXT   52  virtio6-req.1
  40:          0          0     919071          0          0  PCH-MSI-EXT   53  virtio6-req.2
  41:          0          0          0     876534          0  PCH-MSI-EXT   54  virtio6-req.3
...
©龙芯开源社区 all right reserved,powered by Gitbook文档更新时间: 2023-05-19 06:36:14

results matching ""

    No results matching ""

    results matching ""

      No results matching ""