Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1090521

Summary: [RFE] VM scheduling should consider hypervisor memory utilization
Product: Red Hat Enterprise Virtualization Manager Reporter: Lukas Svaty <lsvaty>
Component: ovirt-engineAssignee: Doron Fediuck <dfediuck>
Status: CLOSED DUPLICATE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 3.4.0CC: acathrow, dfediuck, gklein, iheim, lpeer, Rhev-m-bugs, sherold, yeylon
Target Milestone: ---Keywords: FutureFeature, Improvement
Target Release: 3.6.0Flags: sherold: Triaged+
Hardware: All   
OS: Linux   
Whiteboard: sla
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-08-05 14:22:39 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: SLA RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Lukas Svaty 2014-04-23 14:14:11 UTC
Description of problem:
At the moment engine is counting memory of VMs running on destination host and testing it if it is sufficient. In case external process is allocating large amount of memory migration is started and fails.

That is because we are not considering external processes to consume memory on hosts used 'only' for virtualization. At least there is a warning in engine that memory of host is low. And we can see the bar in host tab filled ~98%.

The behaviour of migration should be the same in both cases:
1. Memory on dst-host is consumed by VMs (Migration is not allowed)
2. Memory on dst-host is consumed by external process (Migration starts and fails)

Version-Release number of selected component (if applicable):
av6

How reproducible:
100%

Steps to Reproduce:
1. Consume memory on host -> python -m "foo = ' '* freemem;
2. Try to migrate. (Migration is started and fails)
3. Consume memory on host by VMs running
4. Try to migrate to it. (Not allowed)

Actual results:
If this won't be fixed in this version because it is 'by design'. It should be at least proposed as RFE for 3.5

Comment 1 Doron Fediuck 2014-04-24 07:31:05 UTC
Currently the assumption is that hypervisors are dedicated for VMs, so the
major memory consumption should be done by qemu processes only.
Current design and implementation is based on this concept, and free memory
calculation is explained in:
http://www.ovirt.org/Sla/FreeMemoryCalculation

As a result if a user has a different process which becomes a major memory
consumer, the scheduler will not take it into consideration.

What we can try here is to add a configurable option, which will change
the above calculation to an alternative one, based on last known memory 
utilization of the host. However as this may introduce regressions the 
alternative calculation should be carefully defined, reviewed and tested.

Comment 2 Itamar Heim 2014-04-24 19:41:14 UTC
i'm pretty sure we already have some configs around memory reservations / limits to prevent scheduling?

Comment 3 Itamar Heim 2014-08-05 14:22:39 UTC

*** This bug has been marked as a duplicate of bug 736808 ***