Hide Forgot
Description of problem: We have two scheduling policies that can balance the VM's between cluster hosts by memory condition(PowerSaving, EvenlyDistributed). But the balancing does not work correctly in the case when we have hosts with the different amount of memory and we want to have some percentage of memory free on each host. Version-Release number of selected component (if applicable): ovirt-engine-4.1.0-0.2.master.20161212172238.gitea103bd.el7.centos.noarch How reproducible: Always Steps to Reproduce: 1. Add two hosts to the engine, host_1 has 4Gb of memory and host_2 has 16Gb of memory. 2. I want that each host will have always 25% memory free 3. Actual results: If I will put maximal threshold to 4Gb(25% of 8Gb), I can not use the host with 4Gb at all. Expected results: I want to have possibility to define relative values for the upper and lower memory threshold under the scheduler policy(the same way as for CPU thresholds) Additional info: Just need to be aware of the fact that we can have the situation, when: 1) host_1 has 4Gb 2) host_2 has 16Gb 3) we define upper threshold to 25% 4) host_1 has 2Gb free memory(50% free memory) 5) host_2 has 7.2Gb free memory(45% free memory) 6) VM for the balancing has 3Gb of memory If the balancing will choose the host with the biggest percentage of free memory we will choose host_1(but host_1 does not have enough memory to run VM's) So I believe we need: 1) Filter destination hosts by free memory percentage 2) Order host by exact free memory in a descending way 3) Take first host from the hosts
Relative calculation is not a good fit for heterogeneous cluster. Using a fix amount of memory works better regardless of the server memory size.