Use provisioned memory for mem migration selector

Use the new "provisioned" memory field, instead of the "allocated"
memory field, to determine the optimal node when using the "mem"
migration selector. This will take into account non-running VMs in the
calculation as well as running VMs.
This commit is contained in:
Joshua Boniface 2020-10-18 14:12:24 -04:00
parent a4b80be5ed
commit f749633f7c
2 changed files with 10 additions and 10 deletions

View File

@ -466,19 +466,19 @@ def getNodes(zk_conn, node_limit, dom_uuid):
# via free memory (relative to allocated memory) # via free memory (relative to allocated memory)
def findTargetNodeMem(zk_conn, node_limit, dom_uuid): def findTargetNodeMem(zk_conn, node_limit, dom_uuid):
most_allocfree = 0 most_provfree = 0
target_node = None target_node = None
node_list = getNodes(zk_conn, node_limit, dom_uuid) node_list = getNodes(zk_conn, node_limit, dom_uuid)
for node in node_list: for node in node_list:
memalloc = int(zkhandler.readdata(zk_conn, '/nodes/{}/memalloc'.format(node))) memprov = int(zkhandler.readdata(zk_conn, '/nodes/{}/memprov'.format(node)))
memused = int(zkhandler.readdata(zk_conn, '/nodes/{}/memused'.format(node))) memused = int(zkhandler.readdata(zk_conn, '/nodes/{}/memused'.format(node)))
memfree = int(zkhandler.readdata(zk_conn, '/nodes/{}/memfree'.format(node))) memfree = int(zkhandler.readdata(zk_conn, '/nodes/{}/memfree'.format(node)))
memtotal = memused + memfree memtotal = memused + memfree
allocfree = memtotal - memalloc provfree = memtotal - memprov
if allocfree > most_allocfree: if provfree > most_provfree:
most_allocfree = allocfree most_provfree = provfree
target_node = node target_node = node
return target_node return target_node

View File

@ -197,19 +197,19 @@ def getNodes(zk_conn, node_limit, dom_uuid):
# via free memory (relative to allocated memory) # via free memory (relative to allocated memory)
def findTargetNodeMem(zk_conn, node_limit, dom_uuid): def findTargetNodeMem(zk_conn, node_limit, dom_uuid):
most_allocfree = 0 most_provfree = 0
target_node = None target_node = None
node_list = getNodes(zk_conn, node_limit, dom_uuid) node_list = getNodes(zk_conn, node_limit, dom_uuid)
for node in node_list: for node in node_list:
memalloc = int(zkhandler.readdata(zk_conn, '/nodes/{}/memalloc'.format(node))) memprov = int(zkhandler.readdata(zk_conn, '/nodes/{}/memprov'.format(node)))
memused = int(zkhandler.readdata(zk_conn, '/nodes/{}/memused'.format(node))) memused = int(zkhandler.readdata(zk_conn, '/nodes/{}/memused'.format(node)))
memfree = int(zkhandler.readdata(zk_conn, '/nodes/{}/memfree'.format(node))) memfree = int(zkhandler.readdata(zk_conn, '/nodes/{}/memfree'.format(node)))
memtotal = memused + memfree memtotal = memused + memfree
allocfree = memtotal - memalloc provfree = memtotal - memprov
if allocfree > most_allocfree: if provfree > most_provfree:
most_allocfree = allocfree most_provfree = provfree
target_node = node target_node = node
return target_node return target_node