Bug 831149
Summary: | virt-manager causes iowait, due to rewriting XML files repeatable | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 6 | Reporter: | Jesper Brouer <jbrouer> |
Component: | libvirt | Assignee: | Jiri Denemark <jdenemar> |
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 6.3 | CC: | acathrow, berrange, crobinso, dyasny, dyuan, gsun, jbrouer, jdenemar, mzhan, rwu, veillard, weizhan, ydu |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | libvirt-0.9.13-3.el6 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2013-02-21 07:17:07 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: |
Description
Jesper Brouer
2012-06-12 10:07:41 UTC
This is a libvirt bug - every time we run a QEMU monitor command we save the XML state under /var/run/libvirt/qemu. virt-manager triggers a monitor command every time it asks for updated guest status. Latest upstream libvirt fixed this issue commit 31796e2c1c8187b6b76a58d43f3bc28e030223ee Author: Jiri Denemark <jdenemar> Date: Fri Apr 6 19:42:34 2012 +0200 qemu: Avoid excessive calls to qemuDomainObjSaveJob() As reported by Daniel Berrangé, we have a huge performance regression for virDomainGetInfo() due to the change which makes virDomainEndJob() save the XML status file every time it is called. Previous to that change, 2000 calls to virDomainGetInfo() took ~2.5 seconds. After that change, 2000 calls to virDomainGetInfo() take 2 *minutes* 45 secs. We made the change to be able to recover from libvirtd restart in the middle of a job. However, only destroy and async jobs are taken care of. Thus it makes more sense to only save domain state XML when these jobs are started/stopped. The commit Daniel mentioned in comment 1 is upstream as v0.9.11-40-g31796e2. A work-around to mitigate this issue is to lower how often virt-manager updates its status. Select menu: "Edit" -> Choose: Preferences (new window pops up) -> Goto fan "Stats" Lower: "Update status every" pkgs: libvirt-0.9.13-3.el6.x86_64 qemu-kvm-rhev-0.12.1.2-2.297.el6_3.x86_64 kernel-2.6.32-280.el6.x86_64 prepare a running domain # virsh list Id Name State ---------------------------------------------------- 3 aaa running steps: 1. run vmstat -1 in one terminal 2. run strace on second terminal # strace -f -p `pidof libvirtd` -s 512 -e trace=rename Process 25638 attached with 11 threads - interrupt to quit 3. start virt-manager 3.1 # virt-manager 3.2 Destroy domain aaa through virt-manager what's show up in strace: [pid 25648] rename("/var/run/libvirt/qemu/aaa.xml.new", "/var/run/libvirt/qemu/aaa.xml") = 0 At same time the wa value stay low. 3.3 Start domain aaa through virt-manager what's show up in strace: [pid 25645] --- SIGCHLD (Child exited) @ 0 (0) --- [pid 25642] rename("/var/run/libvirt/qemu/aaa.xml.new", "/var/run/libvirt/qemu/aaa.xml") = 0 Process 26127 attached Process 26128 attached [pid 26124] --- SIGALRM (Alarm clock) @ 0 (0) --- [pid 25642] rename("/var/run/libvirt/qemu/aaa.xml.new", "/var/run/libvirt/qemu/aaa.xml") = 0 Also, the wa value stay low. Test with libvirt-0.9.10-21.el6.x86_64, the rename continuously pop up in strace. So this is fixed now. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHSA-2013-0276.html |