一种云环境下基于动态优先级的负载均衡策略的制作方法

文档序号:14253218阅读:282来源:国知局

本发明涉及负载均衡策略,具体涉及一种云环境下基于动态优先级的负载均衡策略。



背景技术:

云计算技术利用了虚拟化技术将计算、存储、网络等资源进行池化,通过互联网将共享的软硬件以服务的方式提供给用户。云计算技术拥有虚拟化技术、并行计算技术、网格计算、分布式计算技术以及透明计算技术的一系列优势。云计算的资源调度是多个层面的,一般包括应用层、虚拟层、物理层三个层面,各个层调度的对象和粒度各有不同。但无论是哪个层的资源的调度,都是为了实现云计算资源的有效合理的利用。负载均衡是影响资源有效利用的重要因素。负载的不均衡会严重影响云计算系统的性能,造成系统阻塞,降低系统吞吐率和系统资源利用率。



技术实现要素:

为解决上述问题,本发明提供一种优化负载均衡的云环境下基于动态优先级的负载均衡策略。

本发明的技术方案是:一种云环境下基于动态优先级的负载均衡策略,包括以下步骤:

获取各个服务节点状态信息;服务节点状态信息包括该服务节点所包含各个云主机的cpu利用率、存储利用率和网络利用率;

负载均衡器根据服务节点状态信息建立服务节点优先级队列;

负载均衡器根据服务节点优先级变化情况,动态调整各服务节点的优先级更新周期;

负载均衡器根据各个服务节点的更新周期调整服务节点优先级队列。

进一步地,所述负载均衡器根据服务节点状态信息建立服务节点优先级队列是指负载均衡器根据以下模型计算服务节点的动态优先级得分,动态优先级得分越高动态优先级越高:

其中,host_score(i)表示第i个服务节点的动态优先级得分;cpu_avg(i)、storage_avg(i)、network_avg(i)分别表示第i个服务节点的cpu、存储、网络在当前监控周期内的平均利用率;host_cpu(j)、host_storage(j)、host_network(j)分别表示第i个服务节点的第j个云主机的cpu、存储、网络利用率。

进一步地,负载均衡器根据服务节点优先级变化情况,动态调整各服务节点的优先级更新周期具体实现方法为:

负载均衡器以周期default_monitor_time(i)计算服务节点的优先级偏差δ

其中,host_score(i)是第i个服务节点的动态优先级得分,host_score是n个服务节点动态优先级得分的平均值;

定义第i个服务节点的优先级偏差上限为threshold(i),判断第i个服务节点优先级偏差上限threshold(i)与优先级偏差δ的大小,若δ<threshold(i),则第i个服务节点的优先级更新周期monitor(i)为:

monitor_time(i)=default_monitor_time(i)(1)

monitor_time(i)=monitor_time(i)+atomic_time(i)*f(δ,threshold(i))(2)

其中,第(1)式表示第i个服务节点的更新周期的初始化设置,第(2)公式表示第i个服务节点更新周期的动态调整;

atomic_time(i)为更新周期间隔的原子时间,f(δ,threshold(i))表示优先级偏差δ与优先级偏差上限threshold(i)的对应函数关系;

若δ>=threshold(i),则第i个服务节点的优先级更新周期monitor(i)为:

monitor_time(i)=max(monitor_time(i)/2,atomic_time(i))。

进一步地,该策略通过agent系统获取各个服务节点状态信息。

进一步地,该策略还包括步骤:

负载均衡器为请求服务建立缓冲队列。

进一步地,负载均衡器以先来先服务策略为请求服务建立缓冲队列。

进一步地,服务节点优先级队列中优先级高的服务节点作为请求服务的待服务的服务节点。

本发明提供的云环境下基于动态优先级的负载均衡策略,通过综合考虑服务节点的计算、存储、网络的实时负载情况,计算其优先级作为提供服务的依据更为合理高效。同时,根据各个节点的负载变化频率获取其更新周期,不仅减少了负载均衡器的压力,而且保证了负载均衡器的时效性。

附图说明

图1是本发明具体实施例实现过程示意图。

具体实施方式

下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。

如图1所示,本发明的核心思想是通过云平台将智能agent部署到平台的服务节点上,通过agent收集服务节点的状态信息。同时根据先来先服务策略为请求服务建立缓冲队列。然后负载均衡器根据agent收集到的状态信息建立服务节点的优先级队列,优先级高的服务节点定义为待服务的服务节点。最后,负载均衡器根据节点的优先级变化情况,动态的调整各节点的优先级更新周期。

具体的,本策略包括以下步骤:

获取各个服务节点状态信息;服务节点状态信息包括该服务节点所包含各个云主机的cpu利用率、存储利用率和网络利用率;

负载均衡器根据服务节点状态信息建立服务节点优先级队列;

负载均衡器根据服务节点优先级变化情况,动态调整各服务节点的优先级更新周期;

负载均衡器根据各个服务节点的更新周期调整服务节点优先级队列。

需有说明的是,各个服务节点状态信息是通过部署在服务节点上的agent系统获取的。负载均衡器还以先来先服务策略为请求服务建立缓冲队列,按缓冲队列中的任务顺序,将服务节点优先级队列中优先级高的服务节点作为请求服务的待服务的服务节点。

本实施例中,负载均衡器根据服务节点状态信息建立服务节点优先级队列是指负载均衡器根据以下模型计算服务节点的动态优先级得分,动态优先级得分越高动态优先级越高:

其中,host_score(i)表示第i个服务节点的动态优先级得分;cpu_avg(i)、storage_avg(i)、network_avg(i)分别表示第i个服务节点的cpu、存储、网络在当前监控周期内的平均利用率;host_cpu(j)、host_storage(j)、host_network(j)分别表示第i个服务节点的第j个云主机的cpu、存储、网络利用率。需有说明的是,云平台有自己的监控周期,在默认的监控周期内,采集各个服务节点的计算、存储、网络数据。

负载均衡器根据服务节点优先级变化情况,动态调整各服务节点的优先级更新周期具体实现方法为:

负载均衡器以周期default_monitor_time(i)计算服务节点的优先级偏差δ

其中,host_score(i)是第i个服务节点的动态优先级得分,host_score是n个服务节点动态优先级得分的平均值。

定义第i个服务节点的优先级偏差上限为threshold(i),判断第i个服务节点优先级偏差上限threshold(i)与优先级偏差δ的大小,若δ<threshold(i),说明采集数据的变化趋势较为平稳,则第i个服务节点的优先级更新周期monitor(i)为:

monitor_time(i)=default_monitor_time(i)(1)

monitor_time(i)=monitor_time(i)+atomic_time(i)*f(δ,threshold(i))(2)

其中,第(1)式表示第i个服务节点的更新周期的初始化设置,第(2)公式表示第i个服务节点更新周期的动态调整。

atomic_time(i)为更新周期间隔的原子时间,f(δ,threshold(i))表示优先级偏差δ与优先级偏差上限threshold(i)的对应函数关系。f(δ,threshold(i))用来控制监控周期的增长步调,一般是2倍、4倍的增长。即更新的时间间隔的调整大小只能是原子时间atomic_time(i)的整数倍。

若δ>=threshold(i),说明更新周期的变化趋势较大,则第i个服务节点的优先级更新周期monitor(i)需有缩小,为:

monitor_time(i)=max(monitor_time(i)/2,atomic_time(i))。

上述策略通过综合考虑服务节点的计算、存储、网络的实时负载情况,计算其优先级作为提供服务的依据较为合理高效。同时,根据各个服务节点的负载变化频率获取其更新周期,不仅减少了负载均衡器的压力,而且保证了负载均衡器的时效性。

以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1