2负载均衡技术
现有的数据库集群中通常采用的负载均衡策略包括轮询均衡、权重轮询均衡、随机均衡以及处理能力均衡等,这些负载均衡算法主要针对结构化且数据量较稳定情况下集群节点的网络带宽和吞吐量的平衡[8-10]。面对智能电网海量状态监测数据的实时读写,由于状态监测节点数据量不稳定,正常状态下只有少量结构化数据(见表1),异常状态下会产生大量的小文件(如谱图或录波文件),且无法准确评估数据量,当这样的监测点规模庞大时,会导致传统的负载均衡策略无法有效衡量集群中各节点的负载能力,导致集群负载失衡,甚至系统崩溃。
同时现有的负载均衡策略为平衡负载,主要通过文件迁移实现,即把负载从一个服务器节点转移到另一个服务器节点中。在状态监测系统中由于数据不稳定,节点间可能会出现频繁的迁移,且迁移的数据量规模较大,不仅影响网络带宽,也会造成索引表不断重建,导致系统资源损耗以及访问效率的下降。
为了解决上述问题,本文设计了一种基于负载预测的动态反馈负载均衡机制。基于负载预测的动态反馈机制示意如图6所示。
基于负载预测的动态反馈机制的核心是负载评估、负载预测和动态反馈负载均衡。该机制根据服务器集群监测服务上报的各节点实时负载情况,结合各节点最近一段时间负载变化情况,对各节点的负载状态进行评估,根据评估结果对节点后续一段时间内的负载情况进行预测,预测结果提交到动态索引框架用于负载策略的动态调整。
2.1负载评价
负载评价模块从服务器集群监测管理模块中获取各服务器节点的CPU、内存、网络、磁盘以及I/O等资源的实时使用情况,负载评价通常采用基于请求的负载评价和基于资源使用情况的负载评价2种方法。由于智能电网状态监测系统中监测点的数据量不稳定,不宜采用基于请求的负载评价方法,故本文采用基于资源使用情况的负载评价。
基于资源使用情况的负载评价流程如下:
1)选择能最大程度体现节点负载情况的指标;
2)由于各节点的系统配置和性能不可能相同,需要对这些指标进行归一化处理;
3)基于归一化后的负载情况指标,建立反映服务器节点性能和时间的负载评价层次模型(见图7);
4)根据层次模型,构建能反映不同节点负载状态的判断矩阵;
5)根据判断矩阵计算出不同负载情况指标对应的负载度量值,负载度量值越大,表示该节点的负载越重,反之负载越轻。当一个新节点加入到集群中时,其负载度量值为0,表示无负载,当节点满载时,负载度量值为1。
2.2负载预测
基于负载情况指标,结合负载评价结果建立基于BP神经网络的负载预测模型,基于BP神经网络的负载预测流程如下:
1)从服务器节点状态监测模块中获取负载情况指标,根据负载评价模块中的方法进行归一化;
2)从负载评价模块获取服务器节点的负载度量值;
3)基于上述负载指标信息,建立BP神经网络预测模型(见图8);
4)将采集到的各节点的负载情况指标输入到预测模型中对BP神经网络进行训练,根据实际运行中负载的变化情况对预测模型进行验证。
2.3动态反馈负载均衡
通过设定负载告警值(本文设定负载度量值为0.6),当某节点的负载评价结果超过该值时,系统启动负载均衡流程,也可按周期定时启动流程,从集群状态监测模块获取节点负载实时信息,对集群节点的负载进行预测,并根据预测结果进行数据迁移,完成节点负载调整。动态反馈负载均衡流程如图9所示。