• 收藏
  • 加入书签
添加成功
收藏成功
分享

基于二分K-means的云计算集群资源分配算法研究

杨槿
  
科教文创媒体号
2023年16期
中国电信内蒙古分公司内蒙古呼和浩特 010000

打开文本图片集

摘要:云计算计划正式启动后,云已经成为了热点研究话题。云计算数据中心内,由成千上万台计算节点或服务器构成计算机群导致资源分配成为了主要问题。用户对于资源的请求随时改变,基于多资源环境下,资源分配法对于系统资源利用率、用户满意度、总体工作效率等非常重要。为了实现集群负载平衡,系统资源的最大化,提高系统效率,因此提出了RABCC算法。基于内存资源和处理器使用情况统计,将二分K—means聚类应用在云计算集群节点中,找出每个集群中的聚类中心。对于待分配的用户要求,选择资源占用率最小的节点所代表的资源。基于节点的总资源来对于分配的最大用户请求数进行计算,并使用高级算法来分配资源规划技能。经过实验发现,该算法可以有效提高集群的稳定性,因为实现了节点间的负载均衡,不仅提高了任务执行效率,还为用户提供了更公平的响应和良好的用户体验。

关键词:云计算;二分K-means聚类;资源分配;资源调度

在云计算数据中心,数千个或更多的计算机节点或服务器组成了一个拥有强大处理能力的计算集群,能够根据用户需求实现资源的动态分配。因为云时间是从网络计算发展得到的,网络环境中的资源分配是一个研究重点话题,云和网格在基于特定联系之间存在许多相似之处和差异[1]。所以,对云环境中资源分配问题进行研究具有非常重要的意义。

Kara等人为云数据中心设计了一种资源分配算法,能够管理能源消耗,能最大限度地减少了违反SLA行为,并将云数据中心的功耗保持在可接受的范围内[2]。梓璇等人通过在云计算集群中单节点的平均值计算中应用将K—means聚类分析,实现了主导资源公平DRF(dominant resource fairness)分配算法。结果表明,该方法可以实现较好的负载均衡。郑迎凤等设计了CTS—QFC(cloud tasks scheduling QoS algorithm meeting fairness constraint)算法,该算法能够满足多QoS(quality of service)条件,并且非常关注公平性,任务执行效率显著提升,确保了资源分配和任务规划的公平性[3]。Hidi等人通过改进GOA(grass—hopper optimization algorithm)算法,之后在响应云计算系统方面得到了进一步优化,还可以妥善处理云计算资源分配问题[4]。喻德旷等人为了实现多资源分配,提出了一种粒子群优化算法(par— ticle swarm optimization,PSO)策略,并且通过将该算法作为动态随机扰动,将惯性权重常数设为变量,在迭代过程中逐渐缩小搜索范围。同时,为了增加候选解的多样性,加入了随机扰动。经过仿真实验,结果显示能够提高计算效率与资源利用率。吕腾飞等人则选择结合蚂蚁算法的信息共享和正反馈机制与多目标遗传算法的全局搜索特性,使任务执行时间得到显著缩短,并且降低了任务执行成本,提高了资源利用率。潘佳艺等人提出一种自适应负载资源分配方法,该方法监测计算节点和云计算集群上任务的执行情况,每一个计算节点的性能均开展了建模和量化步骤,最终提高了集群的资源利用率、并发度等。本文提出了一种基于公平规划的RABK算法,主要是通过Fair Scheduler实现,因为YARN资源调度器具有可插拔的特性,因此利用这一特点,覆盖集群之后可以重新启动,及时更新资源分配方法。

1.主导资源公平分配算法

多资源云计算场景中非常适合应用主导资源公平分配算法。在这种情况下,云计算的资源类型非常复杂,在向用户发送出的请求也同样包含不同类型的资源,所以将资源分为主要资源与次要资源两种。例如,密集型I/O类型的请求更关注内存资源,而计算密集型程序则更关注CPU资源。对于不同类型的用户和应用程序,所需要的资源类型也不同[5]。优势资源公平分配算法原理为:每一个用户在定义应用程序的需求程度过程中,可以采用需求向量形式实现定义;根据统计结果计算多个资源在所有用户应用程序中的份额,并使用最具代表性的资源类型作为主要来源。这意味着用户需要并最终倾向于将最重要的资源类型分配给主要资源需求量最小的用户。

2 RABBKC算法

Hadoop是由雅虎开发的一种Mapreduce调试方式和GFC的开源实现。Hadoop 作为Apache开源组织的一个分布式计算框架,Hadoop 的特点在于由廉价硬件设备构成的集群同样可以运行应用程序。当前的Hadoop调度器并未考虑数据区域性问题,绝大多数是建立在同构集群假设前提下[6]。所以,假设集群中各个节点的性能、处理能力相同,网络环境完全相同。Hadoop 2.0的资源管理系统YARN有Fair Scheduler、FIFO Scheduler、Capacity Scheduler这三类基本的资源调度器。

本文提出了一种用于云计算资源分配的RABKC算法。首先,对Hadoop集群中每个slave节点的内存、处理器资源利用率进行集中分析和统计。因为在聚类开始时,K-means聚类需要将随机数量的节点指定为质心,因此使用二进制K-means算法进行分簇,从而解决了因为质心分布不均匀导致的聚类性能较差的问题。根据处理器资源利用率以及内存资源开发的统计结果,对节点进行二进制K-means聚类分析,确定每个聚类中的聚类中心,推荐资源利用率最低的节点进行用户请求分配,计算最大用户请求数,可以基于该节点的资源总量来分配,然后将其与用于资源规划的主导资源分配算法相结合。

因此,本文算法步骤为:假设所有节点所构成的数据集为 。其中, 表示数据集X中的第i个实例,n则代表节点数量。将一整个数据集看作一个簇,并定义为 。其中,k表示划分簇的个数。每一个簇都有一个质心 。对于簇 的质心 进行计算,为: 。

其中, 是簇 的第i个实例,基于上述公式来计算初始簇的质心。如果簇总数低于给定数量,每一个簇均需进行k取值为2的K-means聚类,并对于簇聚类后的簇内误差平方、SE(within—cluster sum of squared errors)等进行计算,通过SSSE最下的簇划分后,需簇总数满指定条件。

在关于第n簇划分质量的SSE中,划分成簇内误差平方和SSE1、剩余其他簇的簇内误差平方和SSE2。假设当前数据集X中一共有n个簇, ,即 。其中的第n簇 实施二分法后,获得两个簇 和 。所以,簇内误差平方和公式为: 。

而剩余其他簇的簇内误差平方和为: 。

根据上述步骤,可以得到k个簇,结合 公式,对于各簇的质心进行求解。

对于集群环境中内存和处理器资源的使用情况进行测试,采用Sysbank和Ubbench两个工具实现。最佳内存消耗为50%,最佳CPU消耗为70%。如果资源利用率高于上述数据,则意味着其他节点的性能出现了下降[7]。因此,确定了质心 及其坐标 。用于评估系统资源使用情况的值定义如下: 。

代入各簇质心计算,得到的最终值越小,表示借点资源利用率越低。质心为C则代表系统资源利用率评估值最小,因此需要优先为其分配用户请求。资源调度是通过主导资源公平分配算法,求主导资源中占使用率最低的任务 ,并对其优先分配 簇内节点上的资源。这确保了每个资源计划将资源从相对不活动的节点分配给任务,实现集群的负载均衡。

基于RABBKC算法具有众多优势,常见的有以下几方面:(1)通过主导资源公平分配算法,对于用户需求进行动态跟踪,用户不能为了获得更多资源而选择错误报告。(2)公平分配算法动态计算每个用户所需的有用资源比例,将资源分配给有用资源比例较低的用户,确保资源的公平分配,鼓励用户共享资源。(3)动态评估每一个计算机节点的资源利用率,使工作人员能够对集群内的计算机节点数量进行随时调整,有效避免因为难以处理多个用户请求、安装不足、计算机节点资源过度分散和浪费等问题而导致停机。(4)在没有用户指南的情况下,应使用明确的资源分配算法来实现合理的资源分配。每种资源的价值和参与度由规划师统一计算。没有用户会相信其他用户会收到更多或更多的资源来改善用户体验[8]。(5)节点资源的使用需要确保一致,避免因为负载过大问题而导致某些节点中断的可能性,从而确保云计算集群的稳定。(6)在处理用户请求时,选择资源利用率比较低的节点进行优先处理,提高云计算集群的任务执行效率,避免出现节点空闲却不及时响应用户请求的问题。

3.仿真实验

为了对于分配算法的实际应用效果,开展了仿真实验。同时,因为Hadoop YARN中具有资源调度器可插拔的特点,所以需要对yarn—site.xml配置文件的yarn.resoureemanager.scheduler.class进行修改,然后修改Fair Scheduler配置文件。根据本文中建议的算法,使用适当的源代码进行编译,Hadoop重新启动后证明更改完成。基于CloudSim 4.0平台开展算法仿真验证,重写调度算法并修改功能,并创建一个由10台物理计算机和20台虚拟机组成的数据中心。配置两种类型的用户请求,新建100个请求任务,其中分别是60个请求(1)和40个请求(2),将其与传统的主导资源公平分配算法进行对比。见下表1所示,分别新建50、100用户请求配置求任务,如下图1-图4所示为本次仿真实验的结果。

从下图中可以看出,在利用RABCC算法进行任务调度过程中,每一个虚拟机的资源利用率之间相对比较平衡,使用清晰合理的资源分配算法会导致虚拟机资源利用率出现显著差异。意味着前者能够平衡每个节点的资源利用率,并支持集群负载平衡。避免在其他节点空闲时一些虚拟机被占用而无法处理,影响资源利用率;如果任务的总数是50,则RABBKC算法和资源分配算法之间的效率没有显著差异。但是,随着任务数量逐渐增加,在100任务数量时,资源利用率之间的平衡显著增加,这意味着第一个任务可以更好地利用其负载平衡角色来处理大量未完成的查询。而当任务总数达到500之后,部分虚拟机的CPU资源被耗尽,很有可能会出现中断等后果。这意味着RABCC算法的使用更有利于集群云计算环境的稳定运行。

总结

综上所述,本文使用RABCC算法来解决云计算集群环境中节点资源的公平分配。在经过Cloudsim仿真后,将该算法和与传统主导资源公平分配方法开展方针实验,进行不同任务数之间的比较。仿真实验结果显示,RABCC算法这一方法能够实现集群负载平衡,确保集群稳定,提高云计算环境中算法执行效率和执行的稳定性。随着数据的快速增长和技术的不断发展,云计算应运而生,以应对海量数据的快速处理。高效的资源分配算法是有效管理云计算场景中多用户推荐任务的关键。优秀的资源配置算法能够确保资源条件相同的状态下,多个用户处理任务数据效率更快,本文提出的RABCC算法可以实现集群负载平衡,有效提高预测算法的执行效率,从而确保系统运行的安全稳定,并且使用户获得良好的体验,提供较高的经济价值。

本文使用的方法是在多个节点的集群环境下应用云资源分配法,在节点数量比较少时,聚类效应恶化导致云资源分配的合理性下降。所以需要不断改进,以便更好的适应集群节点不多的场景。

参考文献

[1] 龚广伟,谢添,赵海涛,等. 基于图着色的大规模无人机群三维网络资源分配算法[J]. 信号处理,2022,38(8):1693-1702.

[2] 魏华栋,肖心园,江冰,等. 基于二分K-means的云计算集群资源分配算法[J]. 电气自动化,2022,44(3):1-4.

[3] 于旺,石艳,赵海妮,等. 改进粒子群算法的集群协同干扰资源分配[J]. 战术导弹技术,2023(2):122-129.

[4] 杨守义,成昊泽,党亚萍. 基于集群协作的云雾混合计算资源分配和负载均衡策略[J]. 电子与信息学报,2023,45(7):2423-2431.

[5] 胡亚红,吴寅超,朱正东,等. 异构集群节点与作业特性感知资源分配算法[J]. 计算机工程与应用,2022,58(18):327-334.

[6] 胡亚红,吴寅超,朱正东. 节点实时性能自适应的集群资源分配算法[J]. 国防科技大学学报,2022,44(6):144-150.

[7] 王刚,于银辉,杨莹. 超密集网络中基于集群分配的干扰管理与资源分配[J]. 吉林大学学报(理学版),2021,59(5):1228-1236.

[8] 苏梅梅,程咏梅,胡劲文,等. 基于改进蚁群算法的无人机集群任务分配和路径规划联合优化[J]. 无人系统技术,2021,4(4):40-50.

*本文暂不支持打印功能

monitor