S11*_*S11 -4 java cloud algorithm
input: hostList, utilThreshold
hostList.sortDecreasingUtilization()
lastIndex = hostList.indexOfLastNonZeroHostUtilization()
for i := lastIndex downto 1
for j := 1 to i - 1
if hostList[j].currentUtil() + hostList[i].currentUtil() <= utilThreshold
vmList = hostList[i].getAllVms()
host[i].deleteAllVms()
host[j].addVms(vmList)
break
Run Code Online (Sandbox Code Playgroud)
这个伪代码来自
绿色云计算:用于虚拟机迁移和整合的贪婪算法,以优化数据中心的能耗
Rasoul Beik伊斯兰阿萨德大学 - Khomeinishahr分支,伊斯法罕,伊朗
一些研究论文.我读了这篇论文,但他们对这个算法没有任何解释.
这是论文的描述:
此算法是最小主机利用率选择,最大主机利用率分配(MinMax_HU)
在该算法中,主机根据其使用情况定期分类; 如果高效主机的利用率不超过算法中定义的利用率阈值,则效率较低的主机中的VM将移至更高效的主机.
任何人都可以逐行解释这个算法吗?我不明白if条件.
它所做的只是将VM移动到具有足够容量来容纳两台主机当前VM集的主机上,这将释放其中一台主机所需的资源.
忘记主人和虚拟机:想象你正在搬家,而且你有太多的纸箱装在车里.每个纸箱都可以容纳一些最大数量的书籍:你可以从一个纸箱中取出所有书籍并将它们放在另一个纸箱中; 那么你将需要更少的盒子.
所以,算法基本上是:
for box1 in boxes:
for box2 in (boxes without box1):
if (# books in box1 + # books in box2) < (max # books in a box):
move all books from box1 to box2
throw away box1
Run Code Online (Sandbox Code Playgroud)
那里也有一些排序的东西,只是为了让算法很好地利用可用的空间:它通过降低利用率来排序(参见每个方框中的书数); 内循环中的迭代顺序意味着您将尝试组合主机(cf框)以保留之后的最小剩余空间.