kvm-guest-drivers-windows icon indicating copy to clipboard operation
kvm-guest-drivers-windows copied to clipboard

[viostor] Why does the performance of the viostor driver decrease

Open york-king opened this issue 2 years ago • 5 comments

During the performance test, we found that 4K random read / write (70% read). The latest version of the driver (100.93.104.24000) is much less effective than the previous version (100.83.104.18700).

  • Guest:win2016 1607

  • 187 version:

image

  • 240 verion:

image

  • Through comparison, we found that the performance of the driver started to deteriorate in version 100.83.104.18900;

189 version: image

york-king avatar Oct 12 '23 11:10 york-king

@york-king

There were several changes related to the performance optimization and the maximum transfer size between build 187 and 189. Can you please post the qemu command line and IoMeter config file? And also by any chance, can you please check if there is any performance gap between builds 187 and 189 when testing 2MB block transfer?

Best regards, Vadim.

vrozenfe avatar Oct 13 '23 00:10 vrozenfe

hi, @vrozenfe

  • Here are some test data, and the results show that the 189 version has slightly worse results
viostor version Access Specification Name IOps MiBps (Binary) MBps (Decimal) Average Response Time Maximum Response Time Queue Depth
187 2M seq 7:3 3108.403165 6216.80633 6518.793914 20.585675 44.318452 64
189 2M seq 7:3 2990.892708 5981.785416 6272.356624 21.394941 64.518173 64
187 4k rand 7:3 157117.7947 613.741386 643.554487 0.407103 16.148202 64
189 4k rand 7:3 142701.3418 557.427116 584.504696 0.448277 26.656851 64
187 8k rand 7:3 155963.8894 1218.467886 1277.656182 0.410124 32.596539 64
189 8k rand 7:3 135979.9638 1062.343467 1113.947864 0.470435 30.947232 64
  • qemu command line:

/usr/bin/kvm -id 1384900388335 -chardev socket,id=qmp,path=/var/run/qemu-server/1384900388335.qmp,server,nowait -mon chardev=qmp,mode=control -vnc 0.0.0.0:8100,websocket=14500,to=15000 -enable-kvm -pidfile /var/run/qemu-server/1384900388335.pid -name "viostorperftest" -cpu host,hv_spinlocks=0x1fff,hv_relaxed,hv_time,hv_vapic,hv_stimer,hv_synic,hv_vpindex,hv-runtime,+sse4.1,+sse4.2,+x2apic,+pcid,+pdcm,+xtpr,+ht,+ss,+acpi,+ds,migratable=no,+invtsc,-vmx,vendor=GenuineIntel -nodefaults -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x18.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x18 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x18.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x18.0x2 -spice port=0,disable-ticketing,up_port=13999,down_port=13500,os_type=ws1664,jpeg-wan-compression=never,jpeg_quality=85,streaming-video=filter -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,bus=usb.0,port=1,chardev=charredir0,id=ehci-redir0,bootindex=10 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,bus=usb.0,port=2,chardev=charredir1,id=ehci-redir1,bootindex=11 -chardev spicevmc,id=charredir2,name=usbredir -device usb-redir,bus=usb.0,port=3,chardev=charredir2,id=ehci-redir2,bootindex=12 -chardev spicevmc,id=charredir3,name=usbredir -device usb-redir,bus=usb.0,port=4,chardev=charredir3,id=ehci-redir3,bootindex=13 -chardev spicevmc,id=charredir4,name=usbredir -device usb-redir,bus=usb.0,port=5,chardev=charredir4,id=ehci-redir4,bootindex=14 -chardev spicevmc,id=charredir5,name=usbredir -device usb-redir,bus=usb.0,port=6,chardev=charredir5,id=ehci-redir5,bootindex=15 -device nec-usb-xhci,id=xhci,bus=pci.0,addr=0x19.0x0,p2=6,p3=6 -chardev spicevmc,id=charredir6,name=usbredir -device usb-redir,bus=xhci.0,port=1,chardev=charredir6,id=xhci-redir0,bootindex=16 -chardev spicevmc,id=charredir7,name=usbredir -device usb-redir,bus=xhci.0,port=2,chardev=charredir7,id=xhci-redir1,bootindex=17 -chardev spicevmc,id=charredir8,name=usbredir -device usb-redir,bus=xhci.0,port=3,chardev=charredir8,id=xhci-redir2,bootindex=18 -chardev spicevmc,id=charredir9,name=usbredir -device usb-redir,bus=xhci.0,port=4,chardev=charredir9,id=xhci-redir3,bootindex=19 -chardev spicevmc,id=charredir10,name=usbredir -device usb-redir,bus=xhci.0,port=5,chardev=charredir10,id=xhci-redir4,bootindex=20 -chardev spicevmc,id=charredir11,name=usbredir -device usb-redir,bus=xhci.0,port=6,chardev=charredir11,id=xhci-redir5,bootindex=21 -vga qxl -global qxl-vga.ram_size=134217728 -global qxl-vga.vram_size=134217728 -global qxl-vga.vgamem_mb=32 -no-hpet -k en-us -chardev socket,id=chardev_vhostblk0,path=/var/run/vs/vhost/vhost-blk-1384900388335-1376404350-0,reconnect=1,reconnect-retry=10 -chardev socket,id=chardev_vhostblk1,path=/var/run/vs/vhost/vhost-blk-1384900388335-1376404350-1,reconnect=1,reconnect-retry=10 -boot menu=on,splash-time=20000,ostype=windows,reboot-timeout=5000 -smp sockets=1,cores=8 -m 16384 -object memory-backend-file,id=mem-node0,size=16384M,mem-path=/dev/hugepages,share=on,host-nodes=0,policy=preferred -numa node,nodeid=0,memdev=mem-node0,cpus=0-7 -device pci-bridge,id=pci.2,chassis_nr=2,bus=pci.0,addr=0x1e -device pci-bridge,id=pci.3,chassis_nr=3,bus=pci.0,addr=0x1f -device pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x6 -usb -device usb-hub,id=reserved_usb_hub,bus=usb-bus.0,port=1 -drive file=/sf/data/7e3a8f8cdf74f2c0b002344bbd23d811/cn_windows_server_2016_x64_dvd_9327743.iso,if=none,id=drive-ide2,media=cdrom -device ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200,serial=1384900388335-2 -device vhost-user-blk-pci,chardev=chardev_vhostblk0,id=vhostblk0,bus=pci.0,addr=0xa,bootindex=100 -device vhost-user-blk-pci,chardev=chardev_vhostblk1,id=vhostblk1,bus=pci.0,addr=0xb -netdev type=tap,id=net0,ifname=138490038833500 -device e1000,romfile=,mac=FE:FC:FE:BA:B0:EC,netdev=net0,bus=pci.0,addr=0x12,id=net0 -rtc driftfix=slew,clock=rt,base=localtime -global kvm-pit.lost_tick_policy=discard -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -chardev socket,path=/var/run/qemu-server/1384900388335.virtser,server,nowait,id=channelser -device virtio-serial,max_ports=2,ioeventfd=off -device virtserialport,chardev=channelser,name=channelser.virtserial0.0 -machine mem-merge=off -machine smm=off -uuid dff9444f-ab69-4211-b23b-e4c66c0b7a64 -smbios type=1,manufacturer=sangfor,product=acloud,version=1,serial=DFF9444F00 -smbios type=2,manufacturer=sangfor,product=acloud,version=1,serial=1384900388335 -cmdline-version vmx-3.14 -bios /sf/share/kvm/bios.bin -post 1384900388335

  • iometer.icf

iometer.zip

Best regards, York

york-king avatar Oct 13 '23 03:10 york-king

@york-king

Thanks a lot. Let me ask QE to reproduce the issue.

Best, Vadim.

vrozenfe avatar Oct 13 '23 04:10 vrozenfe