Page 284 - 《软件学报》2021年第8期
P. 284
2566 Journal of Software 软件学报 Vol.32, No.8, August 2021
步骤 3:根据资源约束、通信成本、RR 与 CPU 优先级,确定非关键线程的分配情况.
步骤 4:根据资源约束模型与最优线程重分配模型,确定集群内数据的迁移情况.
步骤 5:根据节能策略计算集群的路径成本与总能耗.
3.1 资源约束算法
为确定集群内工作节点的资源约束,采用资源约束算法,其中需要考虑工作节点 CPU、内存与网络带宽的
资源占用率.该算法保证集群关键节点在满足资源约束的条件下进行数据迁移.此外,当关键节点的一类资源占
用率达到极限时,则将该节点设置为极限节点,表示无法再将数据迁入该节点,因此需要重新选择关键节点.具
体的算法描述在算法 1 中体现.
算法 1. 资源约束算法.
输入:关键节点的极限资源 r ← (r r M ,r B ) ,关键节点的初始资源 o ← (o C ,o M ,o B ) ,关键节点迁入数据后
C
,
i n i n i n i n i n i n i n i n
增加的资源 r′ ← (r C′ ,r M ′ ,r B′ ) .
i n i n i n i n
输出:允许关键节点迁入数据表示 tr.
′′
初始化: N′′ ()C ← { , ,...,n n′′ 2 n′′ m }. /*极限节点集合*/
1
B
1. if o ≥ C r C or o ≥ M r M or o ≥ B r then
i n i n i n i n i n i n
2. N″(C)←n i ;
3. else
4. while n i =tr do
C′
C
C
5. if r + o ≤ r then
i n i n i n
6. n i .put (r C′ i n ,"CPU") ;
7. else
8. n i ≠tr;
9. end if
M
M
10. if r M ′ + o ≤ r then
i n
i n
i n
11. n i .put (r M ′ ,"DRAM") ;
i n
12. else
13. n i ≠tr;
14. end if
15. if r + o ≤ r then
B′
B
B
i n i n i n
16. n .put (r B′ ," Network Bandwidt ")h ;
i i n
17. else
18. n i ≠tr;
19. end if
20. end while
21. end if
算法 1 的输入参数为关键节点的极限资源、关键节点的初始资源与关键节点迁入数据后增加的资源;输出
参数为允许关键节点迁入数据;初始化为极限节点集合.算法的第 1 行、第 2 行表示对关键节点 n i 是否为极限
节点进行判断:若为极限节点,则该节点不能被迁入数据;否则,需要判断工作节点数据迁入是否满足 3 条原则.
算法的第 5 行~第 9 行表示对关键节点是否满足 CPU 资源临界原则进行判断:若满足,则判断之后的两条原则;
否则,节点数据迁入不满足 tr.算法的第 10 行~第 14 行表示在满足 CPU 资源临界原则后,对关键节点是否满足
内存资源临界原则进行判断:若满足内存资源临界原则,进入下一环节;否则,节点数据迁入不满足 tr.算法的第