RE: Guest performance is reduced after live migration
I used lmbench, and even simple test shows the difference here. Simple read/writes (but not open/close?) seem to take much longer. Perhaps this over simplifies things, but it's repeatable. Any thoughts? Other tests that might be interesting? ubuntu-12.04 - first boot == Simple syscall: 0.0527 microseconds Simple read: 0.1143 microseconds Simple write: 0.0953 microseconds Simple open/close: 1.0432 microseconds ubuntu-12.04 - post live migration == Simple syscall: 0.0621 microseconds Simple read: 0.2485 microseconds Simple write: 0.2252 microseconds Simple open/close: 1.4626 microseconds ubuntu-10.04 - first boot == Simple syscall: 0.0524 microseconds Simple read: 0.1135 microseconds Simple write: 0.0972 microseconds Simple open/close: 1.1261 microseconds ubuntu-10.04 - post live migration == Simple syscall: 0.0526 microseconds Simple read: 0.1075 microseconds Simple write: 0.0951 microseconds Simple open/close: 1.0413 microseconds Regards, mark On Wed, Dec 19, 2012 at 12:43:37AM +, Mark Petersen wrote: Hello KVM, I'm seeing something similar to this (http://thread.gmane.org/gmane.comp.emulators.kvm.devel/100592) as well when doing live migrations on Ubuntu 12.04 (Host and Guest) with a backported libvirt 1.0 and qemu-kvm 1.2 (improved performance for live migrations on guests with large memory guests is great!) The default libvirt 0.9.8 and qemu-kvm 1.0 have the same issue. Kernel is 3.2.0-34-generic and eglicb 2.15 on both host/guest. I'm seeing similar issues with both virtio and ide bus. Hugetblfs is not used, but transparent hugepages are. Host machines are dual core Xeon E5-2660 processors. I tried disabling EPT but that doesn't seem to make a difference so I don't think it's a requirement to reproduce. If I use Ubuntu 10.04 guest with eglibc 2.11 and any of these kernels I don't seem to have the issue: linux-image-2.6.32-32-server - 2.6.32-32.62 linux-image-2.6.32-38-server - 2.6.32-38.83 linux-image-2.6.32-43-server - 2.6.32-43.97 linux-image-2.6.35-32-server - 2.6.35-32.68~lucid1 linux-image-2.6.38-16-server - 2.6.38-16.67~lucid1 linux-image-3.0.0-26-server - 3.0.0-26.43~lucid1 linux-image-3.2-5 - mainline 3.2.5 kernel __ See http://www.peak6.com/email_disclaimer/ for terms and conditions related to this email -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: Guest performance is reduced after live migration
Here's what I have found so far... Ubuntu 10.04 performed within +/- 2% so I'm not including those results.It seems that it's more of an issue of disk access, so I'm going to run some more disk specific benchmarks and I'll those results later. I'd be happy to run any other perf tests that might help track down the problem as well. Qemu command line: /usr/bin/kvm -name one-3 -S -M pc-1.2 -cpu Westmere -enable-kvm -m 73728 -smp 16,sockets=2,cores=8,threads=1 -uuid 3ebea329-cfbb-3447-0b49-b41e078a3ede -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/one-3.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -no-kvm-pit-reinjection -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/var/lib/one//datastores/0/3/disk.0,if=none,id=drive-virtio-disk0,format=raw,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive file=/var/lib/one//datastores/0/3/disk.1,if=none,id=drive-ide0-0-0,readonly=on,format=raw -device ide-cd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -netdev tap,fd=23,id=hostnet0,vhost=on,vhostfd=25 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=02:00:0a:64:02:fe,bus=pci.0,addr=0x3 -vnc 0.0.0.0:3,password -vga cirrus -incoming tcp:0.0.0.0:49155 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 Initial Boot Benchmarks === Huge Page Usage Physical Host: 2627584kB QEMU Process: 2478080kB Using phoronix pts/compuational ImageMagick - 31.54s Linux Kernel 3.1 - 43.91s Mplayer - 30.49s PHP - 22.25s After Live Migration Benchmarks === Huge Page Usage Physical Host: 3174400kB QEMU Process: 3151872kB Using phoronix pts/compilation ImageMagick - 43.29s Linux Kernel 3.1 - 76.67s Mplayer - 45.41s PHP - 29.1s -Original Message- From: kvm-ow...@vger.kernel.org [mailto:kvm-ow...@vger.kernel.org] On Behalf Of Mark Petersen Sent: Wednesday, January 02, 2013 7:32 PM To: Marcelo Tosatti Cc: kvm@vger.kernel.org; shouta.ueh...@jp.yokogawa.com Subject: RE: Guest performance is reduced after live migration I believe I disabled huge pages on the guest and host previously, but I'll test a few scenarios and look at transparent hugepage usage specifically again over the next couple days and report back. Below is a command line used for testing. /usr/bin/kvm - qemu-x86_64 /usr/bin/kvm -name one-483 -S -M pc-1.2 -cpu Westmere -enable-kvm -m 73728 -smp 16,sockets=2,cores=8,threads=1 -uuid a844146a-0d72-a661-fe6c-cb6b7a4ba240 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/one-483.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/var/lib/one//datastores/0/483/disk.0,if=none,id=drive-virtio-disk0,format=raw,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive file=/var/lib/one//datastores/0/483/disk.1,if=none,id=drive-ide0-0-0,readonly=on,format=raw -device ide-cd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -netdev tap,fd=26,id=hostnet0,vhost=on,vhostfd=27 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=02:00:0a:02:02:4b,bus=pci.0,addr=0x3 -vnc 0.0.0.0 -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 -Original Message- From: Marcelo Tosatti [mailto:mtosa...@redhat.com] Sent: Wednesday, January 02, 2013 6:49 PM To: Mark Petersen Cc: kvm@vger.kernel.org; shouta.ueh...@jp.yokogawa.com Subject: Re: Guest performance is reduced after live migration On Wed, Jan 02, 2013 at 11:56:11PM +, Mark Petersen wrote: I don't think it's related to huge pages... I was using phoronix-test-suite to run benchmarks. The 'batch/compilation' group shows the slowdown for all tests, the 'batch/computation' show some performance degradation, but not nearly as significant. Huge pages in the host, for the qemu-kvm process, i mean. Without huge pages backing guest memory in the host, 4k EPT TLB entries will be used instead of 2MB EPT TLB entries. You could probably easily test this way without phoronix - Start a VM with almost nothing running. Download mainline Linux kernel, compile. This takes about 45 seconds in my case (72GB memory, 16 virtual CPUs, idle physical host running this VM.) Run as many times as you want, still takes ~45 seconds. Migrate to a new idle host, kernel compile now takes ~90 seconds, wait 3 hours (should give khugepaged a change to do its thing I imagine), Please verify its the case (by checking how much memory is backed by hugepages). http://www.mjmwired.net/kernel/Documentation/vm/transhuge.txt Monitoring Usage. kernel compiles still take 90 seconds. Reboot virtual machine (run 'shutdown -r now', reboot, whatever.) First compile
Re: Guest performance is reduced after live migration
Can you describe more details of the test you are performing? If transparent hugepages are being used then there is the possibility that there has been no time for khugepaged to back guest memory with huge pages, in the destination (don't recall the interface for retrieving number of hugepages for a given process, probably somewhere in /proc/pid/). On Wed, Dec 19, 2012 at 12:43:37AM +, Mark Petersen wrote: Hello KVM, I'm seeing something similar to this (http://thread.gmane.org/gmane.comp.emulators.kvm.devel/100592) as well when doing live migrations on Ubuntu 12.04 (Host and Guest) with a backported libvirt 1.0 and qemu-kvm 1.2 (improved performance for live migrations on guests with large memory guests is great!) The default libvirt 0.9.8 and qemu-kvm 1.0 have the same issue. Kernel is 3.2.0-34-generic and eglicb 2.15 on both host/guest. I'm seeing similar issues with both virtio and ide bus. Hugetblfs is not used, but transparent hugepages are. Host machines are dual core Xeon E5-2660 processors. I tried disabling EPT but that doesn't seem to make a difference so I don't think it's a requirement to reproduce. If I use Ubuntu 10.04 guest with eglibc 2.11 and any of these kernels I don't seem to have the issue: linux-image-2.6.32-32-server - 2.6.32-32.62 linux-image-2.6.32-38-server - 2.6.32-38.83 linux-image-2.6.32-43-server - 2.6.32-43.97 linux-image-2.6.35-32-server - 2.6.35-32.68~lucid1 linux-image-2.6.38-16-server - 2.6.38-16.67~lucid1 linux-image-3.0.0-26-server - 3.0.0-26.43~lucid1 linux-image-3.2-5 - mainline 3.2.5 kernel I'm guess it's a libc issue (or at least a libc change causing the issue) as it doesn't seem to a be kernel related. I'll try other distributions as a guest (probably Debian/Ubuntu) with newer libc's and see if I can pinpoint the issue to a libc version. Any other ideas? Shared disk backend is clvm/LV via FC to EMC SAN, not sure what else might be relevant. Thanks, Mark __ See http://www.peak6.com/email_disclaimer/ for terms and conditions related to this email -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: Guest performance is reduced after live migration
I don't think it's related to huge pages... I was using phoronix-test-suite to run benchmarks. The 'batch/compilation' group shows the slowdown for all tests, the 'batch/computation' show some performance degradation, but not nearly as significant. You could probably easily test this way without phoronix - Start a VM with almost nothing running. Download mainline Linux kernel, compile. This takes about 45 seconds in my case (72GB memory, 16 virtual CPUs, idle physical host running this VM.) Run as many times as you want, still takes ~45 seconds. Migrate to a new idle host, kernel compile now takes ~90 seconds, wait 3 hours (should give khugepaged a change to do its thing I imagine), kernel compiles still take 90 seconds. Reboot virtual machine (run 'shutdown -r now', reboot, whatever.) First compile will take ~45 seconds after reboot. You don't even need to reset/destroy/shutdown the VM, just a reboot in the guest fixes the issue. I'm going to test more with qemu-kvm 1.3 tomorrow as I have a new/dedicated lab setup and recently built the 1.3 code base. I'd be happy to run any test that would help in diagnosing the real issue here, I'm just not sure how to best diagnose this issue. Thanks, Mark -Original Message- Can you describe more details of the test you are performing? If transparent hugepages are being used then there is the possibility that there has been no time for khugepaged to back guest memory with huge pages, in the destination (don't recall the interface for retrieving number of hugepages for a given process, probably somewhere in /proc/pid/). On Wed, Dec 19, 2012 at 12:43:37AM +, Mark Petersen wrote: Hello KVM, I'm seeing something similar to this (http://thread.gmane.org/gmane.comp.emulators.kvm.devel/100592) as well when doing live migrations on Ubuntu 12.04 (Host and Guest) with a backported libvirt 1.0 and qemu-kvm 1.2 (improved performance for live migrations on guests with large memory guests is great!) The default libvirt 0.9.8 and qemu-kvm 1.0 have the same issue. Kernel is 3.2.0-34-generic and eglicb 2.15 on both host/guest. I'm seeing similar issues with both virtio and ide bus. Hugetblfs is not used, but transparent hugepages are. Host machines are dual core Xeon E5-2660 processors. I tried disabling EPT but that doesn't seem to make a difference so I don't think it's a requirement to reproduce. If I use Ubuntu 10.04 guest with eglibc 2.11 and any of these kernels I don't seem to have the issue: linux-image-2.6.32-32-server - 2.6.32-32.62 linux-image-2.6.32-38-server - 2.6.32-38.83 linux-image-2.6.32-43-server - 2.6.32-43.97 linux-image-2.6.35-32-server - 2.6.35-32.68~lucid1 linux-image-2.6.38-16-server - 2.6.38-16.67~lucid1 linux-image-3.0.0-26-server - 3.0.0-26.43~lucid1 linux-image-3.2-5 - mainline 3.2.5 kernel I'm guess it's a libc issue (or at least a libc change causing the issue) as it doesn't seem to a be kernel related. I'll try other distributions as a guest (probably Debian/Ubuntu) with newer libc's and see if I can pinpoint the issue to a libc version. Any other ideas? Shared disk backend is clvm/LV via FC to EMC SAN, not sure what else might be relevant. Thanks, Mark __ See http://www.peak6.com/email_disclaimer/ for terms and conditions related to this email -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Guest performance is reduced after live migration
On Wed, Jan 02, 2013 at 11:56:11PM +, Mark Petersen wrote: I don't think it's related to huge pages... I was using phoronix-test-suite to run benchmarks. The 'batch/compilation' group shows the slowdown for all tests, the 'batch/computation' show some performance degradation, but not nearly as significant. Huge pages in the host, for the qemu-kvm process, i mean. Without huge pages backing guest memory in the host, 4k EPT TLB entries will be used instead of 2MB EPT TLB entries. You could probably easily test this way without phoronix - Start a VM with almost nothing running. Download mainline Linux kernel, compile. This takes about 45 seconds in my case (72GB memory, 16 virtual CPUs, idle physical host running this VM.) Run as many times as you want, still takes ~45 seconds. Migrate to a new idle host, kernel compile now takes ~90 seconds, wait 3 hours (should give khugepaged a change to do its thing I imagine), Please verify its the case (by checking how much memory is backed by hugepages). http://www.mjmwired.net/kernel/Documentation/vm/transhuge.txt Monitoring Usage. kernel compiles still take 90 seconds. Reboot virtual machine (run 'shutdown -r now', reboot, whatever.) First compile will take ~45 seconds after reboot. You don't even need to reset/destroy/shutdown the VM, just a reboot in the guest fixes the issue. What is the qemu command line? I'm going to test more with qemu-kvm 1.3 tomorrow as I have a new/dedicated lab setup and recently built the 1.3 code base. I'd be happy to run any test that would help in diagnosing the real issue here, I'm just not sure how to best diagnose this issue. Thanks, Mark -Original Message- Can you describe more details of the test you are performing? If transparent hugepages are being used then there is the possibility that there has been no time for khugepaged to back guest memory with huge pages, in the destination (don't recall the interface for retrieving number of hugepages for a given process, probably somewhere in /proc/pid/). On Wed, Dec 19, 2012 at 12:43:37AM +, Mark Petersen wrote: Hello KVM, I'm seeing something similar to this (http://thread.gmane.org/gmane.comp.emulators.kvm.devel/100592) as well when doing live migrations on Ubuntu 12.04 (Host and Guest) with a backported libvirt 1.0 and qemu-kvm 1.2 (improved performance for live migrations on guests with large memory guests is great!) The default libvirt 0.9.8 and qemu-kvm 1.0 have the same issue. Kernel is 3.2.0-34-generic and eglicb 2.15 on both host/guest. I'm seeing similar issues with both virtio and ide bus. Hugetblfs is not used, but transparent hugepages are. Host machines are dual core Xeon E5-2660 processors. I tried disabling EPT but that doesn't seem to make a difference so I don't think it's a requirement to reproduce. If I use Ubuntu 10.04 guest with eglibc 2.11 and any of these kernels I don't seem to have the issue: linux-image-2.6.32-32-server - 2.6.32-32.62 linux-image-2.6.32-38-server - 2.6.32-38.83 linux-image-2.6.32-43-server - 2.6.32-43.97 linux-image-2.6.35-32-server - 2.6.35-32.68~lucid1 linux-image-2.6.38-16-server - 2.6.38-16.67~lucid1 linux-image-3.0.0-26-server - 3.0.0-26.43~lucid1 linux-image-3.2-5 - mainline 3.2.5 kernel I'm guess it's a libc issue (or at least a libc change causing the issue) as it doesn't seem to a be kernel related. I'll try other distributions as a guest (probably Debian/Ubuntu) with newer libc's and see if I can pinpoint the issue to a libc version. Any other ideas? Shared disk backend is clvm/LV via FC to EMC SAN, not sure what else might be relevant. Thanks, Mark __ See http://www.peak6.com/email_disclaimer/ for terms and conditions related to this email -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: Guest performance is reduced after live migration
I believe I disabled huge pages on the guest and host previously, but I'll test a few scenarios and look at transparent hugepage usage specifically again over the next couple days and report back. Below is a command line used for testing. /usr/bin/kvm - qemu-x86_64 /usr/bin/kvm -name one-483 -S -M pc-1.2 -cpu Westmere -enable-kvm -m 73728 -smp 16,sockets=2,cores=8,threads=1 -uuid a844146a-0d72-a661-fe6c-cb6b7a4ba240 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/one-483.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/var/lib/one//datastores/0/483/disk.0,if=none,id=drive-virtio-disk0,format=raw,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive file=/var/lib/one//datastores/0/483/disk.1,if=none,id=drive-ide0-0-0,readonly=on,format=raw -device ide-cd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -netdev tap,fd=26,id=hostnet0,vhost=on,vhostfd=27 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=02:00:0a:02:02:4b,bus=pci.0,addr=0x3 -vnc 0.0.0.0 -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 -Original Message- From: Marcelo Tosatti [mailto:mtosa...@redhat.com] Sent: Wednesday, January 02, 2013 6:49 PM To: Mark Petersen Cc: kvm@vger.kernel.org; shouta.ueh...@jp.yokogawa.com Subject: Re: Guest performance is reduced after live migration On Wed, Jan 02, 2013 at 11:56:11PM +, Mark Petersen wrote: I don't think it's related to huge pages... I was using phoronix-test-suite to run benchmarks. The 'batch/compilation' group shows the slowdown for all tests, the 'batch/computation' show some performance degradation, but not nearly as significant. Huge pages in the host, for the qemu-kvm process, i mean. Without huge pages backing guest memory in the host, 4k EPT TLB entries will be used instead of 2MB EPT TLB entries. You could probably easily test this way without phoronix - Start a VM with almost nothing running. Download mainline Linux kernel, compile. This takes about 45 seconds in my case (72GB memory, 16 virtual CPUs, idle physical host running this VM.) Run as many times as you want, still takes ~45 seconds. Migrate to a new idle host, kernel compile now takes ~90 seconds, wait 3 hours (should give khugepaged a change to do its thing I imagine), Please verify its the case (by checking how much memory is backed by hugepages). http://www.mjmwired.net/kernel/Documentation/vm/transhuge.txt Monitoring Usage. kernel compiles still take 90 seconds. Reboot virtual machine (run 'shutdown -r now', reboot, whatever.) First compile will take ~45 seconds after reboot. You don't even need to reset/destroy/shutdown the VM, just a reboot in the guest fixes the issue. What is the qemu command line? I'm going to test more with qemu-kvm 1.3 tomorrow as I have a new/dedicated lab setup and recently built the 1.3 code base. I'd be happy to run any test that would help in diagnosing the real issue here, I'm just not sure how to best diagnose this issue. Thanks, Mark -Original Message- Can you describe more details of the test you are performing? If transparent hugepages are being used then there is the possibility that there has been no time for khugepaged to back guest memory with huge pages, in the destination (don't recall the interface for retrieving number of hugepages for a given process, probably somewhere in /proc/pid/). On Wed, Dec 19, 2012 at 12:43:37AM +, Mark Petersen wrote: Hello KVM, I'm seeing something similar to this (http://thread.gmane.org/gmane.comp.emulators.kvm.devel/100592) as well when doing live migrations on Ubuntu 12.04 (Host and Guest) with a backported libvirt 1.0 and qemu-kvm 1.2 (improved performance for live migrations on guests with large memory guests is great!) The default libvirt 0.9.8 and qemu-kvm 1.0 have the same issue. Kernel is 3.2.0-34-generic and eglicb 2.15 on both host/guest. I'm seeing similar issues with both virtio and ide bus. Hugetblfs is not used, but transparent hugepages are. Host machines are dual core Xeon E5-2660 processors. I tried disabling EPT but that doesn't seem to make a difference so I don't think it's a requirement to reproduce. If I use Ubuntu 10.04 guest with eglibc 2.11 and any of these kernels I don't seem to have the issue: linux-image-2.6.32-32-server - 2.6.32-32.62 linux-image-2.6.32-38-server - 2.6.32-38.83 linux-image-2.6.32-43-server - 2.6.32-43.97 linux-image-2.6.35-32-server - 2.6.35-32.68~lucid1 linux-image-2.6.38-16-server - 2.6.38-16.67~lucid1 linux-image-3.0.0-26-server - 3.0.0-26.43~lucid1 linux-image-3.2-5 - mainline 3.2.5 kernel I'm guess it's a libc issue (or at least a libc change causing the issue
RE: Guest performance is reduced after live migration
Dear all I continue watching a mailing list whether a similar problem is reported because a problem does not seem to happen to others. Any information, however small, would be appreciated. regards -Original Message- From: Uehara, Shouta (shouta.ueh...@jp.yokogawa.com) Sent: Friday, November 09, 2012 6:52 PM To: 'kvm@vger.kernel.org'; 'Xiao Guangrong (xiaoguangr...@linux.vnet.ibm.com)' Subject: RE: Guest performance is reduced after live migration I've analysed the problem with migration using perf-events, and it is confirmed cost of glibc is significantly increased. I made a simple test code to execute read system call on the guest as follows, and examined the performance from host and guest. fd = open(/dev/zero, O_RDONLY); while (1) { read(fd ch, 1); } --- [Source host] $ sudo perf kvm --host --guest record -a -o src_host.perf sleep 10 Events: 10K cycles 89.36% qemu-system-x86 [unknown] [g] 0x810a36ef 9.04% qemu-system-x86 [unknown] [u] 0x3fd20e2020 0.16% swapper [kernel.kallsyms] [k] intel_idle 0.11%sleep [kernel.kallsyms] [k] page_fault [Guest on source host] $ perf record -o src_guest.perf ./loop_read Events: 29K cpu-clock 11.71% loop_read [kernel.kallsyms] [k] system_call_after_swapgs 9.58% loop_read libc-2.14.90.so[.] __GI___libc_read 6.92% loop_read [kernel.kallsyms] [k] vfs_read 5.53% loop_read [kernel.kallsyms] [k] fsnotify __GI___libc_read :003fd20e2010 __read: 2.31 : 3fd20e2010: 83 3d 1d 22 2d 00 00cmpl $0x0,0x2d221d( 5.67 : 3fd20e2017: 75 10 jne 3fd20e2029 __ : :003fd20e2019 __read_nocancel: 1.82 : 3fd20e2019: b8 00 00 00 00 mov $0x0,%eax 0.00 : 3fd20e201e: 0f 05 syscall 87.78 : 3fd20e2020: 48 3d 01 f0 ff ff cmp $0xfff 0.00 : 3fd20e2026: 73 31 jae 3fd20e2059 __ 2.42 : 3fd20e2028: c3 retq [Destination host] $ sudo perf kvm --host --guest record -a -o dst_host.perf sleep 10 Events: 10K cycles 58.39% qemu-system-x86 [unknown] [g] 0x810a3a6e 40.14% qemu-system-x86 [unknown] [u] 0x3fd20e2017 0.13% gnome-shell nouveau_dri.so [.] 0xbd7c9 0.11% swapper [kernel.kallsyms] [k] intel_idle [Guest on destination host] $ perf record -o dst_guest.perf ./loop_read Events: 29K cpu-clock 41.95% loop_read libc-2.14.90.so[.] __GI___libc_read 7.90% loop_read [kernel.kallsyms] [k] system_call_after_swapgs 4.61% loop_read [kernel.kallsyms] [k] vfs_read 3.72% loop_read [kernel.kallsyms] [k] fsnotify __GI___libc_read :003fd20e2010 __read: 0.41 : 3fd20e2010: 83 3d 1d 22 2d 00 00cmpl $0x0,0x2d221d( 86.10 : 3fd20e2017: 75 10 jne 3fd20e2029 __ : :003fd20e2019 __read_nocancel: 0.33 : 3fd20e2019: b8 00 00 00 00 mov $0x0,%eax 0.00 : 3fd20e201e: 0f 05 syscall 12.84 : 3fd20e2020: 48 3d 01 f0 ff ff cmp $0xfff 0.00 : 3fd20e2026: 73 31 jae 3fd20e2059 __ 0.33 : 3fd20e2028: c3 retq --- After the migration, jne instruction in __read became to take a long time. This is due to increase the overhead of read system call. The performance was not improved even if thp/hugetlb was disabled. Does this problem happen only to me? Should I also ask other community about this problem? Shota -Original Message- From: Xiao Guangrong [mailto:xiaoguangr...@linux.vnet.ibm.com] Sent: Thursday, November 01, 2012 1:45 PM To: Uehara, Shouta (shouta.ueh...@jp.yokogawa.com) Cc: kvm@vger.kernel.org Subject: Re: Guest performance is reduced after live migration Shouta, Can it be reproduced if thp/hugetlbfs is disabled on both source and destination? On 11/01/2012 08:12 AM, shouta.ueh...@jp.yokogawa.com wrote: Hello. I have a problem with the performance of the guest Linux after live migration. When I analyze the file I/O latency of the guest using LMbench3, the latency of the guest on the destination host is about 2 times bigger than the guest on the source host. As a result that I investigated it, this problem occurs if three following conditions are right. 1. Use the kernel version 2.6.38.6-26.fc15.x86_64 or later. 2. Execute system calls for low level file I/O (read, write, open etc.) on the guest. 3. Enable EPT. Performance cannot decrease on other tests
Re: Guest performance is reduced after live migration
On 11/21/2012 09:25 AM, shouta.ueh...@jp.yokogawa.com wrote: Dear allI I continue watching a mailing list whether a similar problem is reported because a problem does not seem to happen to others. Any information, however small, would be appreciated. I am digging into it, but did not get useful hint so far... -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: Guest performance is reduced after live migration
I've analysed the problem with migration using perf-events, and it is confirmed cost of glibc is significantly increased. I made a simple test code to execute read system call on the guest as follows, and examined the performance from host and guest. fd = open(/dev/zero, O_RDONLY); while (1) { read(fd ch, 1); } --- [Source host] $ sudo perf kvm --host --guest record -a -o src_host.perf sleep 10 Events: 10K cycles 89.36% qemu-system-x86 [unknown] [g] 0x810a36ef 9.04% qemu-system-x86 [unknown] [u] 0x3fd20e2020 0.16% swapper [kernel.kallsyms] [k] intel_idle 0.11%sleep [kernel.kallsyms] [k] page_fault [Guest on source host] $ perf record -o src_guest.perf ./loop_read Events: 29K cpu-clock 11.71% loop_read [kernel.kallsyms] [k] system_call_after_swapgs 9.58% loop_read libc-2.14.90.so[.] __GI___libc_read 6.92% loop_read [kernel.kallsyms] [k] vfs_read 5.53% loop_read [kernel.kallsyms] [k] fsnotify __GI___libc_read :003fd20e2010 __read: 2.31 : 3fd20e2010: 83 3d 1d 22 2d 00 00cmpl $0x0,0x2d221d( 5.67 : 3fd20e2017: 75 10 jne3fd20e2029 __ : :003fd20e2019 __read_nocancel: 1.82 : 3fd20e2019: b8 00 00 00 00 mov$0x0,%eax 0.00 : 3fd20e201e: 0f 05 syscall 87.78 : 3fd20e2020: 48 3d 01 f0 ff ff cmp$0xfff 0.00 : 3fd20e2026: 73 31 jae3fd20e2059 __ 2.42 : 3fd20e2028: c3 retq [Destination host] $ sudo perf kvm --host --guest record -a -o dst_host.perf sleep 10 Events: 10K cycles 58.39% qemu-system-x86 [unknown] [g] 0x810a3a6e 40.14% qemu-system-x86 [unknown] [u] 0x3fd20e2017 0.13% gnome-shell nouveau_dri.so [.] 0xbd7c9 0.11% swapper [kernel.kallsyms] [k] intel_idle [Guest on destination host] $ perf record -o dst_guest.perf ./loop_read Events: 29K cpu-clock 41.95% loop_read libc-2.14.90.so[.] __GI___libc_read 7.90% loop_read [kernel.kallsyms] [k] system_call_after_swapgs 4.61% loop_read [kernel.kallsyms] [k] vfs_read 3.72% loop_read [kernel.kallsyms] [k] fsnotify __GI___libc_read :003fd20e2010 __read: 0.41 : 3fd20e2010: 83 3d 1d 22 2d 00 00cmpl $0x0,0x2d221d( 86.10 : 3fd20e2017: 75 10 jne3fd20e2029 __ : :003fd20e2019 __read_nocancel: 0.33 : 3fd20e2019: b8 00 00 00 00 mov$0x0,%eax 0.00 : 3fd20e201e: 0f 05 syscall 12.84 : 3fd20e2020: 48 3d 01 f0 ff ff cmp$0xfff 0.00 : 3fd20e2026: 73 31 jae3fd20e2059 __ 0.33 : 3fd20e2028: c3 retq --- After the migration, jne instruction in __read became to take a long time. This is due to increase the overhead of read system call. The performance was not improved even if thp/hugetlb was disabled. Does this problem happen only to me? Should I also ask other community about this problem? Shota -Original Message- From: Xiao Guangrong [mailto:xiaoguangr...@linux.vnet.ibm.com] Sent: Thursday, November 01, 2012 1:45 PM To: Uehara, Shouta (shouta.ueh...@jp.yokogawa.com) Cc: kvm@vger.kernel.org Subject: Re: Guest performance is reduced after live migration Shouta, Can it be reproduced if thp/hugetlbfs is disabled on both source and destination? On 11/01/2012 08:12 AM, shouta.ueh...@jp.yokogawa.com wrote: Hello. I have a problem with the performance of the guest Linux after live migration. When I analyze the file I/O latency of the guest using LMbench3, the latency of the guest on the destination host is about 2 times bigger than the guest on the source host. As a result that I investigated it, this problem occurs if three following conditions are right. 1. Use the kernel version 2.6.38.6-26.fc15.x86_64 or later. 2. Execute system calls for low level file I/O (read, write, open etc.) on the guest. 3. Enable EPT. Performance cannot decrease on other tests of LMbench3; numerical operation, context switching, memory latencies etc. Is this an existing problem ? What should I do to resolve it ? --- The situation the problem occurs CPU models : Intel Xeon E3-1245 (Both hosts have same cpu.) Host kernel: 3.6.4 Host OS: Fedora 16 64bit ver. (Both hosts have same OS.) Guest OS : Fedora 16 64bit ver., kernel 3.1.0-7.fc16.x86_64 QEMU version : qemu-kvm 1.2.0 QEMU parameter : qemu-kvm -m 1024 -drive file=guest.qcow2,if=virtio \ -boot order=c
RE: Guest performance is reduced after live migration
Can it be reproduced if thp/hugetlbfs is disabled on both source and destination? Yes, the problem occurs even if thp/hugetlbfs is disabled. Shota -Original Message- From: Xiao Guangrong [mailto:xiaoguangr...@linux.vnet.ibm.com] Sent: Thursday, November 01, 2012 1:45 PM To: Uehara, Shouta (shouta.ueh...@jp.yokogawa.com) Cc: kvm@vger.kernel.org Subject: Re: Guest performance is reduced after live migration Shouta, Can it be reproduced if thp/hugetlbfs is disabled on both source and destination? On 11/01/2012 08:12 AM, shouta.ueh...@jp.yokogawa.com wrote: Hello. I have a problem with the performance of the guest Linux after live migration. When I analyze the file I/O latency of the guest using LMbench3, the latency of the guest on the destination host is about 2 times bigger than the guest on the source host. As a result that I investigated it, this problem occurs if three following conditions are right. 1. Use the kernel version 2.6.38.6-26.fc15.x86_64 or later. 2. Execute system calls for low level file I/O (read, write, open etc.) on the guest. 3. Enable EPT. Performance cannot decrease on other tests of LMbench3; numerical operation, context switching, memory latencies etc. Is this an existing problem ? What should I do to resolve it ? --- The situation the problem occurs CPU models : Intel Xeon E3-1245 (Both hosts have same cpu.) Host kernel: 3.6.4 Host OS: Fedora 16 64bit ver. (Both hosts have same OS.) Guest OS : Fedora 16 64bit ver., kernel 3.1.0-7.fc16.x86_64 QEMU version : qemu-kvm 1.2.0 QEMU parameter : qemu-kvm -m 1024 -drive file=guest.qcow2,if=virtio \ -boot order=c,menu=on -k ja (-incoming tcp:192.168.0.51: set only destination) QEMU command : migrate -d tcp:192.168.0.51: Analyses : LMbench version 3 [Guest on the source host] $ ./lat_syscall open Simple open/close: 1.4281 microseconds $ ./lat_syscall read Simple read: 0.1416 microseconds $ ./lat_syscall write Simple write: 0.1194 microseconds $ ./lat_fs -s 0 0k 550 98726 247712 1k 383 69751 193985 4k 381 69348 193383 10k 313 54369 155697 [Guest on the source host] $ ./lat_syscall open Simple open/close: 1.6126 microseconds $ ./lat_syscall read Simple read: 0.2206 microseconds $ ./lat_syscall write Simple write: 0.1980 microseconds $ ./lat_fs -s 0 0k 427 83252 243222 1k 315 60530 191650 4k 184 34535 190947 10k 65 11922 152608 --- Thanks. Shota Uehara Shouta.Uehara()jp.yokogawa.com - CONFIDENTIAL: This e-mail may contain information that is confidential or otherwise protected from disclosure and intended only for the party to whom it is addressed. If you are not the intended recipient, please notify the sender by return and delete this e-mail. You are hereby formally advised that any unauthorized use, disclosure or copying of this email is strictly prohibited and may be unlawful.
Re: Guest performance is reduced after live migration
Shouta, Can it be reproduced if thp/hugetlbfs is disabled on both source and destination? On 11/01/2012 08:12 AM, shouta.ueh...@jp.yokogawa.com wrote: Hello. I have a problem with the performance of the guest Linux after live migration. When I analyze the file I/O latency of the guest using LMbench3, the latency of the guest on the destination host is about 2 times bigger than the guest on the source host. As a result that I investigated it, this problem occurs if three following conditions are right. 1. Use the kernel version 2.6.38.6-26.fc15.x86_64 or later. 2. Execute system calls for low level file I/O (read, write, open etc.) on the guest. 3. Enable EPT. Performance cannot decrease on other tests of LMbench3; numerical operation, context switching, memory latencies etc. Is this an existing problem ? What should I do to resolve it ? --- The situation the problem occurs CPU models : Intel Xeon E3-1245 (Both hosts have same cpu.) Host kernel: 3.6.4 Host OS: Fedora 16 64bit ver. (Both hosts have same OS.) Guest OS : Fedora 16 64bit ver., kernel 3.1.0-7.fc16.x86_64 QEMU version : qemu-kvm 1.2.0 QEMU parameter : qemu-kvm -m 1024 -drive file=guest.qcow2,if=virtio \ -boot order=c,menu=on -k ja (-incoming tcp:192.168.0.51: set only destination) QEMU command : migrate -d tcp:192.168.0.51: Analyses : LMbench version 3 [Guest on the source host] $ ./lat_syscall open Simple open/close: 1.4281 microseconds $ ./lat_syscall read Simple read: 0.1416 microseconds $ ./lat_syscall write Simple write: 0.1194 microseconds $ ./lat_fs -s 0 0k 550 98726 247712 1k 383 69751 193985 4k 381 69348 193383 10k 313 54369 155697 [Guest on the source host] $ ./lat_syscall open Simple open/close: 1.6126 microseconds $ ./lat_syscall read Simple read: 0.2206 microseconds $ ./lat_syscall write Simple write: 0.1980 microseconds $ ./lat_fs -s 0 0k 427 83252 243222 1k 315 60530 191650 4k 184 34535 190947 10k 65 11922 152608 --- Thanks. Shota Uehara Shouta.Uehara()jp.yokogawa.com - CONFIDENTIAL: This e-mail may contain information that is confidential or otherwise protected from disclosure and intended only for the party to whom it is addressed. If you are not the intended recipient, please notify the sender by return and delete this e-mail. You are hereby formally advised that any unauthorized use, disclosure or copying of this email is strictly prohibited and may be unlawful. -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html