Bug 1168786
| Summary: | data-plane need optimize throughput on single disk | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Xiaomei Gao <xigao> |
| Component: | qemu-kvm-rhev | Assignee: | Stefan Hajnoczi <stefanha> |
| Status: | CLOSED WONTFIX | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 7.1 | CC: | aliang, coli, famz, hannsj_uhl, hhuang, huding, juzhang, michen, qzhang, stefanha, virt-maint, wquan, yama, zhengtli |
| Target Milestone: | rc | ||
| Target Release: | 7.4 | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2017-02-17 12:34:03 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1359843 | ||
|
Comment 3
Stefan Hajnoczi
2015-08-04 13:11:51 UTC
For iothread test on powerpc, there is the same problems. The performance is almost same b/w two senario: qemu cmd: Qemu-kvm... \ ... \ -object iothread,id=iothread1 \ -drive file=/root/test_home/liuzt/vdisk/test.raw.2G,id=test1,if=none,format=raw,cache=none \ -device virtio-blk-pci,drive=test1,id=blk1,bus=pci.0,addr=0x7,iothread=iothread1 \ -drive file=/root/test_home/liuzt/vdisk/test2.raw.2G,id=test2,if=none,format=raw,cache=none \ -device virtio-blk-pci,drive=test2,id=blk2,bus=pci.0,addr=0x8 \ ... Test tools: dd & fio Add info for comment 4: Host kernel: kernel-3.10.0-302.el7.ppc64le qemu: qemu-kvm-rhev-2.3.0-16.el7.ppc64le update 7.2 test results: Description of problem: All in all, there is ~20% IOPS improvemnet for some scenarios on single disk, for other scenarios, IOPS is almost the same between w/o dataplane and w/ dataplane. http://10.66.94.121/results/request/RHEL7.2_data_plane/1ramdisk/fio_raw_virtio_blk.html Version-Release number of selected component (if applicable): qemu-kvm-rhev-2.3.0-18.el7.x86_64 3.10.0-306.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1. Configure linux ramdisk size for 1GB 2. Boot guest with a ramdisk numactl \ -m 3 /usr/libexec/qemu-kvm \ -S \ -name 'virt-tests-vm1' \ -nodefaults \ -chardev socket,id=hmp_id_humanmonitor1,path=/tmp/monitor-humanmonitor1-20150827-094951-4dooOEIJ,server,nowait \ -mon chardev=hmp_id_humanmonitor1,mode=readline \ -chardev socket,id=serial_id_serial1,path=/tmp/serial-serial1-20150827-094951-4dooOEIJ,server,nowait \ -device isa-serial,chardev=serial_id_serial1 \ -chardev socket,id=seabioslog_id_20150827-094951-4dooOEIJ,path=/tmp/seabios-20150827-094951-4dooOEIJ,server,nowait \ -device isa-debugcon,chardev=seabioslog_id_20150827-094951-4dooOEIJ,iobase=0x402 \ -device ich9-usb-uhci1,id=usb1,bus=pci.0,addr=0x3 \ -drive file='/usr/local/autotest/tests/virt/shared/data/images/RHEL-Server-7.2-64.raw',index=0,if=none,id=drive-virtio-disk1,media=disk,cache=none,snapshot=off,format=raw,aio=native \ -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk1,bootindex=0 \ -object iothread,id=iothread1 \ -drive file='/dev/ram0',index=2,if=none,id=drive-virtio-disk2,media=disk,cache=none,snapshot=off,format=raw,aio=native \ -device virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk2,iothread=iothread1,bootindex=1 \ -device virtio-net-pci,netdev=idSIDKDH,mac='9a:37:37:37:37:5e',bus=pci.0,addr=0x6,id='idVOa2Dr' \ -netdev tap,id=idSIDKDH,fd=25 \ -m 4096 \ -smp 2,cores=1,threads=1,sockets=2 \ -cpu 'SandyBridge' \ -M pc \ -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \ -vnc :0 \ -vga cirrus \ -rtc base=utc,clock=host,driftfix=slew \ -boot order=cdn,once=c,menu=off \ -device sga \ -enable-kvm 3. Pin vcpu to node 3 on host # numactl --hardware available: 4 nodes (0-3) node 0 cpus: 0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 node 0 size: 8146 MB node 0 free: 7598 MB node 1 cpus: 1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 node 1 size: 8192 MB node 1 free: 7767 MB node 2 cpus: 2 6 10 14 18 22 26 30 34 38 42 46 50 54 58 62 node 2 size: 8192 MB node 2 free: 7897 MB node 3 cpus: 3 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63 node 3 size: 8192 MB node 3 free: 7333 MB node distances: node 0 1 2 3 0: 10 20 30 20 1: 20 10 20 30 2: 30 20 10 20 3: 20 30 20 10 #taskset -p 0x8 13282 --> pin vcpu thread(13282) to cpu(3) #taskset -p 0x80 13283 --> pin vcpu thread(13283) to cpu(7) 4. Run fio in the guest with the following command. # fio --rw=%s --bs=%s --iodepth=%s --runtime=1m --direct=1 --filename=/dev/vdb --name=job1 --ioengine=libaio --thread --group_reporting --numjobs=16 --time_based rw = "read write randread randwrite randrw" bs = "4k 16k 64k 256k" iodepth = "1 8 64" 5. Collect results in guest. Actual results: All in all, there is ~20% IOPS improvemnet for some scenarios on single disk, for other scenarios, IOPS is almost the same between w/o dataplane and w/ dataplane. Moved to RHEL 7.4 as part of general performance investigation that is needed to better understand QEMU and dataplane performance. |