基于分布式调度架构的录波主站系统设计

2018-02-28 02:31刘斌宁雪莹廖晓春
电子技术与软件工程 2018年20期
关键词:容器架构

刘斌 宁雪莹 廖晓春

摘要

针对录波数据价值密度低、海量骤发性、处理多样性的特点以及录波主站发展要求,提出分布式调度架构录波主站系統的设计方法,运用了分布式计算、容器化、消息队列服务等技术实现计算资源的智能动态调度,构建满足多核多处理器环境的高速并行处理框架,通过一系列算法来提升处理效率,试验结果证明本设计能大幅改善录波主站的性能。

【关键词】分布式调度 架构 录波主站 容器

录波主站系统是维护电力系统安全可靠运行的重要支撑,随着人们对用电量和用电质量的提高,电网系统迅速扩张,随之而来的是更多的设备监视和数据处理要求,在我国大电力系统背景下,故障录波系统数据处理面临以下问题:

(1)价值密度低:故障录波器具有十分敏感的特性,当变电站电流电压出现起伏波动时,故障录波器就会启动,据统计,录波器无效启动占比达到98%,即剩下的2%记录中才是电网故障有价值的信息,可见数据价值密度极低,这就要求主站系统能有效提炼出这2%的信息,实现二次分析利用,最终达到智能化系统目的;

(2)海量骤发性:伴随着电网系统的扩张,单个故障录波系统的规模越来越大,整个厂站端的数据都由主站服务器进行管理分析和处理,当发生电网故障时,短时间内集中产生海量信息,由多个录波点同时上送,瞬间冲击主站端的通信和存储资源。如果主站服务器的吞吐率和扩展能力不足将会成为整个系统的瓶颈;

(3)数据处理多样性:录波器可记录包括电压量、电流量、开关位置、跳闸信号、冲击电流和开断电流等多样化信息,主站收取并存储这些一次数据,通过与记录的历史数据比对分析得到二次数据,最终实现对断路器、变压器等设备的远程在线监视、分析、统计和评估。

由此可见,故障录波主站面临着很大的数据处理压力,而传统的主站系统软件的处理能力已显得捉襟见肘,硬件系统没有发挥最大效力。得益于计算机技术和通信技术的发展,可以利用先进的软件设计手段对主站系统软件进行深度改造,本文提出一种基于分布式调度架构的主站,一方面可实现故障快速分析定位,另一方面可有效提高资源利用率。

1 传统录波主站系统

目前,我国录波主站系统的调度端通常配有通信服务器、数据处理服务器、Web服务器和工作站。简单来说,通信服务器与厂站录波器执行通信任务,数据处理服务器提供应用服务,Web服务器用于信息发布。这几个服务器各司其职,协同完成数据的采集、同步、分析、存储和发布的工作,其中数据处理服务器承载了大量数据处理要求。

传统应用软件方式采用串行程序设计,对于单核计算机多件任务在同一时刻只能有一个在处理中,CPU快速切换在不同任务间;对于多核计算机,系统的运行被动依赖于操作系统的支配,不能对多核处理器均衡负载,当某个处理器处于繁忙状态时,可能其他处理器处于空闲状态,在某种程度上没有充分利用多核多处理器资源,计算能力也十分有限,为了与扩张的厂站数量相匹配,通常会采取升级计算机硬件系统或购置新设备的措施,从而带来更强处理能力的同时也带来了投资增加、部署困难的问题。

2 录波主站架构优化设计

2.1 软件架构设计

出于对主站系统硬性约束和软性约束的考虑,采用分布式架构设计。这种架构设计运用了分布式和容器化技术、消息队列服务、分布式计算技术等。容器是一个可读写的统一文件系统加上隔离的进程空间和包含其中的进程,可以是单台以多核多处理器计算机中一部分资源集合也可以是集群计算机中的单台计算机,每一个容器是一个任务处理节点;分布式计算是将业务分成许多小任务,通过调度器将任务分发给不同的处理节点进行处理;消息队列服务是一种跨进程的通信机制,用于传递消息,通过消息队列可实现了不同模块间的通信。其架构设计如图1所示。

(1)资源池:资源池是用来记录和管理主站CPU、内存、存储、IO等资源的组件,根据使用情况更新信息,可以实时记录在一个私有内存空间里,也可以存放在数据文件中;

(2)任务池:所有任务集合,包括主站计算、通信、存储等任务,系统将优先级、安全权限及所需资源进行打包,当任务被取出时会对任务池刷新,也可通过人工方式放入任务池中;

(3)调度器:调度器轮询监测任务和资源,从消息队列中获取任务包,根据其大小扣减资源分值,通过一系列的算法实现资源的最优配置,是本系统的核心;

(4)任务处理节点:利用容器化技术将主机资源隔离出独立的运行空间,对于动态分配系统,每个处理节点有自己的生命周期,当处理完毕后将视情况释放资源;

(5)故障域:对于超时、调度不成功或执行失败的情况,调度器将问题屏蔽到该区域中,以免引起宕机情况。

调度器在系统中扮演着十分重要的角色,其设计需要满足下面三个需求:资源有效利用、信号相对实时响应、调度策略灵活配置,三要素在运行过程中相辅相成。调度流程如图2所不。

对图示进行说明步骤说明:

(1)按序遍历主站CPU、线程、内存、IO等资源并量化;

(2)系统将任务安全权限及所需资源进行打包,对任务先后顺序及优先级综合考量生成任务队列;

(3)查看任务队列是否为空,如果是空的则调度结束,如果不为空则提交任务,匹配所需资源;

(4)如果任务提交成功,更新资源的私有缓存数据;

(5)否则对资源进行标记后再次提交,回到步骤(3);

(6)如三次不成功,认为发生调度冲突,放弃业务,生成故障域;

(7)调度器轮询容器跟踪执行进度,如果完成则回到任务队列获取新任务,重新从步骤(3)执行。

2.2 调度算法

为了更好的满足系统更高效的运行和主站系统的精益化设计目标,调度器还采用了如下优化算法:

(1)本系统中采用的集中式任务调度,在一体化架构中,任务调度算法通常会采用:优先级调度算法、短任务优先算法或者先来先服务算法等,由于录波主站的实时性要求并不高,调度器将对任务的优先级和大小进行综合考量:对于优先级很高的任务,调度器首先从任务池中取出来,匹配出适用的资源,在运行过程中不影响其他处理节点工作,不会发生抢占或者长时间等待的情况,这样可有效减少任务切换产生的消耗。如果资源匹配失败,则会等待剩余时间最少处理节点释放资源,重新进行资源划分。对于同等优先级任务采取先来先服务原则,从现有执行器中挑选出资源合适且剩余执行时间最小的执行器。

这种调度方式对于网络业务繁忙的故障录波主站系统是十分有利的,当I/O口大量占用資源时,主站服务器依然可以有序执行。

(2)在本系统中任务处理节点资源是动态分配的,即当有任务到来时调度器会将资源和任务进行匹配,隔离出合适的处理节点,下载虚拟镜像,当该任务执行完毕后资源池回收资源,这种方式具有十分大的灵活性,使得细粒度化的资源可以任意组装或分散,但是在组装和分散的过程中,也造成了额外的损耗,为此,调度器采用一种调度算法:当某个处理节点执行完后,调度器不会即刻回收资源,而是将新的级数相似的任务分配给该处理节点。

这种方式降低了资源组装分散及镜像下载的几率,同样减少了内存的频繁分配和释放,兼顾了多方面系统性能指标,提高了调度器吞吐量和缩短平均周转时间。

(3)当变电站或输电网突发故障时,由于连锁反应,故障线路会波及双端或多端几个相关变电站,十几台不同型号的故障录波器会在同一时刻上传数量多且大的录波文件,此时,任务池会出现大量的通信、数据处理和存储等任务,针对这种情况,调度器把任务池中的任务进行过滤、打散的操作,比如,利用算法把任务池中数据相似度很大的任务过滤清除,省去了多余任务对资源的占有。对于级数很大的任务,如果资源匹配失败,可以将此任务打散成多个小任务,调度器将多个小任务分散在多个处理节点上运行,各执行器间通过消息机制进行通信,最终实现分治合并。

(4)在系统运行过程中如果有大量的内存碎片出现,那么资源池很难将内存碎片利用起来,导致内存泄漏的情况。这里采用buddysystem内存管理算法来替代操作系统默认的内存管理,buddy system允许一个被分配块单元平均拆分成两个大小是原来一半的块单元,这两个块单元互为伙伴,所谓伙伴要满足块大小相同且地址连续的条件,另一个伙伴性质是所有块单元在内存中的地址必须能被它自己的大小整除。比如16字节的块的地址都是一些16的倍数,如64字节的块的地址都是一些64的倍数,当回收一个内存块,我们把它挂到对应的空闲链表上,然后查询它的伙伴是不是也在这个空闲链表上,如果是则合并他们然后挂接在对应2倍大小块所对应的空闲链表。这种算法虽然没法完全避免内存碎片,但是也极大提高了内存利用率和程序执行效率。

3 实验分析

该录波主站己投入运营,下表是传统架构和分布式调度架构下主站服务器资源占用率实测情况,在一样运行环境下主站接入不同套故障录波设备,实验数据如表1。

从表1中可见,由于容器化、内存管理、调度器等技术的运用,将任务并行分布处理,有效降低了各项资源占用率。

4 结束语

本文采用的分布式调度架构充分利用了计算机软件技术和通信技术发展的成果,在不改变电网录波系统硬件平台的情况下,对录波主站软件架构进行了由一体化到分布式的改造,同时运用了一些优化算法。这种软件架构顺应信息潮流的处理方式不仅大幅度提升了主站系统的处理效率和性能,也为今后主站系统的进一步智能化提供了契机。当然,这种新兴的分布式调度主站系统架构依然处于起步阶段,需要更长时间的磨砺和更广泛的应用来进一步完善和推广。

参考文献

[1]陈文春,陈创,廖晓春.变压器和断路器远程在线监视系统的设计与应用[J].南方能源建设,2018,5(01):132-138.

[2]张琳波,李本瑜,翟海燕等.电网故障录波主站系统的设计[J].云南电力技术,2015,43(05):89-91.

[3]张琳波,李本瑜,翟海燕等.基于Hadoop技术的批量录波数据高性能处理方法[J].云南电力技术,2015,43(02):135-138.

[4]伦惠勤,骆燕婷,廖晓春等.同步数字传输体系(SDH)下的精确对时方案研究[J].武汉大学学报(工学版),2014,47(04):485-489+515.

[5]李战.基于Docker的容器集群调度机制的设计与实现[D].北京:北京邮电大学,2018.

[6]尹高.基于Docker的服务器运维平台的设计与实现[D].武汉:华中科技大学,2016.

猜你喜欢
容器架构
基于FPGA的RNN硬件加速架构
Different Containers不同的容器
人心像一个容器
功能架构在电子电气架构开发中的应用和实践
难以置信的事情
基于云服务的图书馆IT架构
LSN DCI EVPN VxLAN组网架构研究及实现
一种基于FPGA+ARM架构的μPMU实现
具身学习环境SMALLab的架构分析及启示