Revision 0cd83e6c
b/snf-cyclades-app/synnefo/logic/allocators/default_allocator.py | ||
---|---|---|
68 | 68 |
|
69 | 69 |
|
70 | 70 |
def vm_fits_in_backend(backend, vm): |
71 |
return backend.dfree > vm['disk'] and backend.mfree > vm['ram'] |
|
71 |
has_disk = backend.dfree > vm['disk'] |
|
72 |
has_mem = backend.mfree > vm['ram'] |
|
73 |
# Consider each VM having 4 Virtual CPUs |
|
74 |
vcpu_ratio = ((backend.pinst_cnt + 1) * 4) / backend.ctotal |
|
75 |
# Consider max vcpu/cpu ratio 3 |
|
76 |
has_cpu = vcpu_ratio < 3 |
|
77 |
return has_cpu and has_disk and has_mem |
|
72 | 78 |
|
73 | 79 |
|
74 | 80 |
def backend_score(backend, flavor): |
75 |
mratio = 1 - (backend.mfree / backend.mtotal) |
|
76 |
dratio = 1 - (backend.dfree / backend.dtotal) |
|
77 |
cratio = (backend.pinst_cnt + 1) / (backend.ctotal * 4) |
|
78 |
return 0.7 * (mratio + dratio) * 0.3 * cratio |
|
81 |
mem_ratio = 1 - (backend.mfree / backend.mtotal) |
|
82 |
disk_ratio = 1 - (backend.dfree / backend.dtotal) |
|
83 |
cpu_ratio = ((backend.pinst_cnt + 1) * 4) / (backend.ctotal * 3) |
|
84 |
return 0.5 * cpu_ratio + 0.5 * (mem_ratio + disk_ratio) |
Also available in: Unified diff