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