Wednesday, December 03, 2025

virtio vs virtio-scsi performance

Hi,

The last years (since sysupgrade was created) my kvm VMs where struggling to perform the update (IO).

For instance today it took ~20 minutes for the ramdisk kernel to extract the tar files and do the upgrade.

I was trying various things with this, but all my disks where on virtio.

Today I tried virtio-scsi and saw big improvement compared to virtio.
Performance was similar to doing manual upgrade and doing the tar extracts myself.

In advance my feeling is (without benchmarks) that the system is faster now (IO).
writes are faster, pkg_add is faster, boot is faster, reorder is faster

Don't know if this because of virtio-scsi or something in the 7.8 release.
In any case the 7.8 upgrade kernel was slow with just virtio.

I've also enabled VirtIO-SCSI Multi Queues just for fun, don't know if that also made any difference.

Can anyone explain why this happens?

My storage backend is enterprise level with LVM block devices over iSCSI.

Relevant info with virtio:

    <disk type='block' device='disk' snapshot='no'>        <driver name='qemu' type='qcow2' cache='none' error_policy='stop' io='native' iothread='1'/>        <source dev='/rhev/data-center/mnt/blockSD/de344ddd-f2e3-4eed-98ba-69671ed8e85b/images/9fe01764-4480-481f-a067-f6c1aebb5dd1/c0dd1bea-682b-4ec4-b471-86fcb1d26ae2' index='1'>          <seclabel model='dac' relabel='no'/>        </source>        <backingStore/>        <target dev='vda' bus='virtio'/>        <serial>9fe01764-4480-481f-a067-f6c1aebb5dd1</serial>        <boot order='1'/>        <alias name='ua-9fe01764-4480-481f-a067-f6c1aebb5dd1'/>        <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>      </disk>    virtio2 at pci4 dev 0 function 0 "Qumranet Virtio 1.x Storage" rev 0x01  vioblk0 at virtio2  scsibus1 at vioblk0: 1 targets  sd0 at scsibus1 targ 0 lun 0: <VirtIO, Block Device, >  sd0: 12288MB, 512 bytes/sector, 25165824 sectors  virtio2: msix per-VQ    Relevant info with virtio-scsi:        <disk type='block' device='disk' snapshot='no'>        <driver name='qemu' type='raw' cache='none' error_policy='stop' io='native'/>        <source dev='/rhev/data-center/mnt/blockSD/de344ddd-f2e3-4eed-98ba-69671ed8e85b/images/80662804-5a04-47eb-bfb2-398c361c9ba1/0bdf946d-6c4f-4e45-a17b-32303d2f6cd6' index='1'>          <seclabel model='dac' relabel='no'/>        </source>        <backingStore/>        <target dev='sda' bus='scsi'/>        <serial>80662804-5a04-47eb-bfb2-398c361c9ba1</serial>        <boot order='1'/>        <alias name='ua-80662804-5a04-47eb-bfb2-398c361c9ba1'/>        <address type='drive' controller='0' bus='0' target='0' unit='0'/>      </disk>    virtio4 at pci0 dev 7 function 0 "Qumranet Virtio SCSI" rev 0x00  vioscsi0 at virtio4: qsize 128  virtio4: msix per-VQ  scsibus1 at vioscsi0: 255 targets  sd0 at scsibus1 targ 0 lun 0: <QEMU, QEMU HARDDISK, 2.5+> serial.QEMU_QEMU_HARDDISK_80662804-5a04-47eb-bfb2-398c361c9ba1  sd0: 12288MB, 512 bytes/sector, 25165824 sectors, thin    Thanks,    G    

No comments:

Post a Comment