Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
york-king opened this issue Oct 12, 2023 · 4 comments
Open

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

york-king opened this issue Oct 12, 2023 · 4 comments
Assignees
Labels

Comments

@york-king
Copy link

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

@vrozenfe
Copy link
Collaborator

@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.

@york-king
Copy link
Author

york-king commented Oct 13, 2023

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

@vrozenfe
Copy link
Collaborator

@york-king

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

Best,
Vadim.

@YanVugenfirer
Copy link
Collaborator

Reviewed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants