Description of problem: While investigating [1], we noticed that the handling of VMs that went down is being processed synchronously as part of each iteration of VdsUpdateRunTimeInfo. When we had to handle 50 VMs that went down on the same host at the same time, it caused the iteration to take ~9 minutes. We should extract the code this code that handles VMs that went down to be executed as part of different thread/job as well as other similar synchronous operation that are made within the VURTI thread. Version-Release number of selected component (if applicable): How reproducible: 100% Steps to Reproduce: 1. Run 50 stateless VMs on one host 2. Shutdown all VMs at the same time 3. Actual results: iteration of VURTI can take more than 9 minutes Expected results: the iteration of VURTI end as soon as possible, and the long operations that block it should be executed in different thread. Additional info: [1] https://bugzilla.redhat.com/show_bug.cgi?id=1085760
Verified on ovirt-engine 3.5-rc1. 50 VMs (in a Vmpool), 512 MB memory, 1G disk, no OS installed. All 50 VMs run on the same host. Power off all 50 VMs took ~ 0.5 minute.
*** Bug 1099846 has been marked as a duplicate of this bug. ***
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. https://rhn.redhat.com/errata/RHSA-2015-0158.html