劉斌 寧雪瑩 廖曉春
摘要
針對錄波數(shù)據(jù)價值密度低、海量驟發(fā)性、處理多樣性的特點以及錄波主站發(fā)展要求,提出分布式調(diào)度架構(gòu)錄波主站系統(tǒng)的設(shè)計方法,運用了分布式計算、容器化、消息隊列服務(wù)等技術(shù)實現(xiàn)計算資源的智能動態(tài)調(diào)度,構(gòu)建滿足多核多處理器環(huán)境的高速并行處理框架,通過一系列算法來提升處理效率,試驗結(jié)果證明本設(shè)計能大幅改善錄波主站的性能。
【關(guān)鍵詞】分布式調(diào)度 架構(gòu) 錄波主站 容器
錄波主站系統(tǒng)是維護電力系統(tǒng)安全可靠運行的重要支撐,隨著人們對用電量和用電質(zhì)量的提高,電網(wǎng)系統(tǒng)迅速擴張,隨之而來的是更多的設(shè)備監(jiān)視和數(shù)據(jù)處理要求,在我國大電力系統(tǒng)背景下,故障錄波系統(tǒng)數(shù)據(jù)處理面臨以下問題:
(1)價值密度低:故障錄波器具有十分敏感的特性,當(dāng)變電站電流電壓出現(xiàn)起伏波動時,故障錄波器就會啟動,據(jù)統(tǒng)計,錄波器無效啟動占比達到98%,即剩下的2%記錄中才是電網(wǎng)故障有價值的信息,可見數(shù)據(jù)價值密度極低,這就要求主站系統(tǒng)能有效提煉出這2%的信息,實現(xiàn)二次分析利用,最終達到智能化系統(tǒng)目的;
(2)海量驟發(fā)性:伴隨著電網(wǎng)系統(tǒng)的擴張,單個故障錄波系統(tǒng)的規(guī)模越來越大,整個廠站端的數(shù)據(jù)都由主站服務(wù)器進行管理分析和處理,當(dāng)發(fā)生電網(wǎng)故障時,短時間內(nèi)集中產(chǎn)生海量信息,由多個錄波點同時上送,瞬間沖擊主站端的通信和存儲資源。如果主站服務(wù)器的吞吐率和擴展能力不足將會成為整個系統(tǒng)的瓶頸;
(3)數(shù)據(jù)處理多樣性:錄波器可記錄包括電壓量、電流量、開關(guān)位置、跳閘信號、沖擊電流和開斷電流等多樣化信息,主站收取并存儲這些一次數(shù)據(jù),通過與記錄的歷史數(shù)據(jù)比對分析得到二次數(shù)據(jù),最終實現(xiàn)對斷路器、變壓器等設(shè)備的遠程在線監(jiān)視、分析、統(tǒng)計和評估。
由此可見,故障錄波主站面臨著很大的數(shù)據(jù)處理壓力,而傳統(tǒng)的主站系統(tǒng)軟件的處理能力已顯得捉襟見肘,硬件系統(tǒng)沒有發(fā)揮最大效力。得益于計算機技術(shù)和通信技術(shù)的發(fā)展,可以利用先進的軟件設(shè)計手段對主站系統(tǒng)軟件進行深度改造,本文提出一種基于分布式調(diào)度架構(gòu)的主站,一方面可實現(xiàn)故障快速分析定位,另一方面可有效提高資源利用率。
1 傳統(tǒng)錄波主站系統(tǒng)
目前,我國錄波主站系統(tǒng)的調(diào)度端通常配有通信服務(wù)器、數(shù)據(jù)處理服務(wù)器、Web服務(wù)器和工作站。簡單來說,通信服務(wù)器與廠站錄波器執(zhí)行通信任務(wù),數(shù)據(jù)處理服務(wù)器提供應(yīng)用服務(wù),Web服務(wù)器用于信息發(fā)布。這幾個服務(wù)器各司其職,協(xié)同完成數(shù)據(jù)的采集、同步、分析、存儲和發(fā)布的工作,其中數(shù)據(jù)處理服務(wù)器承載了大量數(shù)據(jù)處理要求。
傳統(tǒng)應(yīng)用軟件方式采用串行程序設(shè)計,對于單核計算機多件任務(wù)在同一時刻只能有一個在處理中,CPU快速切換在不同任務(wù)間;對于多核計算機,系統(tǒng)的運行被動依賴于操作系統(tǒng)的支配,不能對多核處理器均衡負(fù)載,當(dāng)某個處理器處于繁忙狀態(tài)時,可能其他處理器處于空閑狀態(tài),在某種程度上沒有充分利用多核多處理器資源,計算能力也十分有限,為了與擴張的廠站數(shù)量相匹配,通常會采取升級計算機硬件系統(tǒng)或購置新設(shè)備的措施,從而帶來更強處理能力的同時也帶來了投資增加、部署困難的問題。
2 錄波主站架構(gòu)優(yōu)化設(shè)計
2.1 軟件架構(gòu)設(shè)計
出于對主站系統(tǒng)硬性約束和軟性約束的考慮,采用分布式架構(gòu)設(shè)計。這種架構(gòu)設(shè)計運用了分布式和容器化技術(shù)、消息隊列服務(wù)、分布式計算技術(shù)等。容器是一個可讀寫的統(tǒng)一文件系統(tǒng)加上隔離的進程空間和包含其中的進程,可以是單臺以多核多處理器計算機中一部分資源集合也可以是集群計算機中的單臺計算機,每一個容器是一個任務(wù)處理節(jié)點;分布式計算是將業(yè)務(wù)分成許多小任務(wù),通過調(diào)度器將任務(wù)分發(fā)給不同的處理節(jié)點進行處理;消息隊列服務(wù)是一種跨進程的通信機制,用于傳遞消息,通過消息隊列可實現(xiàn)了不同模塊間的通信。其架構(gòu)設(shè)計如圖1所示。
(1)資源池:資源池是用來記錄和管理主站CPU、內(nèi)存、存儲、IO等資源的組件,根據(jù)使用情況更新信息,可以實時記錄在一個私有內(nèi)存空間里,也可以存放在數(shù)據(jù)文件中;
(2)任務(wù)池:所有任務(wù)集合,包括主站計算、通信、存儲等任務(wù),系統(tǒng)將優(yōu)先級、安全權(quán)限及所需資源進行打包,當(dāng)任務(wù)被取出時會對任務(wù)池刷新,也可通過人工方式放入任務(wù)池中;
(3)調(diào)度器:調(diào)度器輪詢監(jiān)測任務(wù)和資源,從消息隊列中獲取任務(wù)包,根據(jù)其大小扣減資源分值,通過一系列的算法實現(xiàn)資源的最優(yōu)配置,是本系統(tǒng)的核心;
(4)任務(wù)處理節(jié)點:利用容器化技術(shù)將主機資源隔離出獨立的運行空間,對于動態(tài)分配系統(tǒng),每個處理節(jié)點有自己的生命周期,當(dāng)處理完畢后將視情況釋放資源;
(5)故障域:對于超時、調(diào)度不成功或執(zhí)行失敗的情況,調(diào)度器將問題屏蔽到該區(qū)域中,以免引起宕機情況。
調(diào)度器在系統(tǒng)中扮演著十分重要的角色,其設(shè)計需要滿足下面三個需求:資源有效利用、信號相對實時響應(yīng)、調(diào)度策略靈活配置,三要素在運行過程中相輔相成。調(diào)度流程如圖2所不。
對圖示進行說明步驟說明:
(1)按序遍歷主站CPU、線程、內(nèi)存、IO等資源并量化;
(2)系統(tǒng)將任務(wù)安全權(quán)限及所需資源進行打包,對任務(wù)先后順序及優(yōu)先級綜合考量生成任務(wù)隊列;
(3)查看任務(wù)隊列是否為空,如果是空的則調(diào)度結(jié)束,如果不為空則提交任務(wù),匹配所需資源;
(4)如果任務(wù)提交成功,更新資源的私有緩存數(shù)據(jù);
(5)否則對資源進行標(biāo)記后再次提交,回到步驟(3);
(6)如三次不成功,認(rèn)為發(fā)生調(diào)度沖突,放棄業(yè)務(wù),生成故障域;
(7)調(diào)度器輪詢?nèi)萜鞲檲?zhí)行進度,如果完成則回到任務(wù)隊列獲取新任務(wù),重新從步驟(3)執(zhí)行。
2.2 調(diào)度算法
為了更好的滿足系統(tǒng)更高效的運行和主站系統(tǒng)的精益化設(shè)計目標(biāo),調(diào)度器還采用了如下優(yōu)化算法:
(1)本系統(tǒng)中采用的集中式任務(wù)調(diào)度,在一體化架構(gòu)中,任務(wù)調(diào)度算法通常會采用:優(yōu)先級調(diào)度算法、短任務(wù)優(yōu)先算法或者先來先服務(wù)算法等,由于錄波主站的實時性要求并不高,調(diào)度器將對任務(wù)的優(yōu)先級和大小進行綜合考量:對于優(yōu)先級很高的任務(wù),調(diào)度器首先從任務(wù)池中取出來,匹配出適用的資源,在運行過程中不影響其他處理節(jié)點工作,不會發(fā)生搶占或者長時間等待的情況,這樣可有效減少任務(wù)切換產(chǎn)生的消耗。如果資源匹配失敗,則會等待剩余時間最少處理節(jié)點釋放資源,重新進行資源劃分。對于同等優(yōu)先級任務(wù)采取先來先服務(wù)原則,從現(xiàn)有執(zhí)行器中挑選出資源合適且剩余執(zhí)行時間最小的執(zhí)行器。
這種調(diào)度方式對于網(wǎng)絡(luò)業(yè)務(wù)繁忙的故障錄波主站系統(tǒng)是十分有利的,當(dāng)I/O口大量占用資源時,主站服務(wù)器依然可以有序執(zhí)行。
(2)在本系統(tǒng)中任務(wù)處理節(jié)點資源是動態(tài)分配的,即當(dāng)有任務(wù)到來時調(diào)度器會將資源和任務(wù)進行匹配,隔離出合適的處理節(jié)點,下載虛擬鏡像,當(dāng)該任務(wù)執(zhí)行完畢后資源池回收資源,這種方式具有十分大的靈活性,使得細(xì)粒度化的資源可以任意組裝或分散,但是在組裝和分散的過程中,也造成了額外的損耗,為此,調(diào)度器采用一種調(diào)度算法:當(dāng)某個處理節(jié)點執(zhí)行完后,調(diào)度器不會即刻回收資源,而是將新的級數(shù)相似的任務(wù)分配給該處理節(jié)點。
這種方式降低了資源組裝分散及鏡像下載的幾率,同樣減少了內(nèi)存的頻繁分配和釋放,兼顧了多方面系統(tǒng)性能指標(biāo),提高了調(diào)度器吞吐量和縮短平均周轉(zhuǎn)時間。
(3)當(dāng)變電站或輸電網(wǎng)突發(fā)故障時,由于連鎖反應(yīng),故障線路會波及雙端或多端幾個相關(guān)變電站,十幾臺不同型號的故障錄波器會在同一時刻上傳數(shù)量多且大的錄波文件,此時,任務(wù)池會出現(xiàn)大量的通信、數(shù)據(jù)處理和存儲等任務(wù),針對這種情況,調(diào)度器把任務(wù)池中的任務(wù)進行過濾、打散的操作,比如,利用算法把任務(wù)池中數(shù)據(jù)相似度很大的任務(wù)過濾清除,省去了多余任務(wù)對資源的占有。對于級數(shù)很大的任務(wù),如果資源匹配失敗,可以將此任務(wù)打散成多個小任務(wù),調(diào)度器將多個小任務(wù)分散在多個處理節(jié)點上運行,各執(zhí)行器間通過消息機制進行通信,最終實現(xiàn)分治合并。
(4)在系統(tǒng)運行過程中如果有大量的內(nèi)存碎片出現(xiàn),那么資源池很難將內(nèi)存碎片利用起來,導(dǎo)致內(nèi)存泄漏的情況。這里采用buddysystem內(nèi)存管理算法來替代操作系統(tǒng)默認(rèn)的內(nèi)存管理,buddy system允許一個被分配塊單元平均拆分成兩個大小是原來一半的塊單元,這兩個塊單元互為伙伴,所謂伙伴要滿足塊大小相同且地址連續(xù)的條件,另一個伙伴性質(zhì)是所有塊單元在內(nèi)存中的地址必須能被它自己的大小整除。比如16字節(jié)的塊的地址都是一些16的倍數(shù),如64字節(jié)的塊的地址都是一些64的倍數(shù),當(dāng)回收一個內(nèi)存塊,我們把它掛到對應(yīng)的空閑鏈表上,然后查詢它的伙伴是不是也在這個空閑鏈表上,如果是則合并他們?nèi)缓髵旖釉趯?yīng)2倍大小塊所對應(yīng)的空閑鏈表。這種算法雖然沒法完全避免內(nèi)存碎片,但是也極大提高了內(nèi)存利用率和程序執(zhí)行效率。
3 實驗分析
該錄波主站己投入運營,下表是傳統(tǒng)架構(gòu)和分布式調(diào)度架構(gòu)下主站服務(wù)器資源占用率實測情況,在一樣運行環(huán)境下主站接入不同套故障錄波設(shè)備,實驗數(shù)據(jù)如表1。
從表1中可見,由于容器化、內(nèi)存管理、調(diào)度器等技術(shù)的運用,將任務(wù)并行分布處理,有效降低了各項資源占用率。
4 結(jié)束語
本文采用的分布式調(diào)度架構(gòu)充分利用了計算機軟件技術(shù)和通信技術(shù)發(fā)展的成果,在不改變電網(wǎng)錄波系統(tǒng)硬件平臺的情況下,對錄波主站軟件架構(gòu)進行了由一體化到分布式的改造,同時運用了一些優(yōu)化算法。這種軟件架構(gòu)順應(yīng)信息潮流的處理方式不僅大幅度提升了主站系統(tǒng)的處理效率和性能,也為今后主站系統(tǒng)的進一步智能化提供了契機。當(dāng)然,這種新興的分布式調(diào)度主站系統(tǒng)架構(gòu)依然處于起步階段,需要更長時間的磨礪和更廣泛的應(yīng)用來進一步完善和推廣。
參考文獻
[1]陳文春,陳創(chuàng),廖曉春.變壓器和斷路器遠程在線監(jiān)視系統(tǒng)的設(shè)計與應(yīng)用[J].南方能源建設(shè),2018,5(01):132-138.
[2]張琳波,李本瑜,翟海燕等.電網(wǎng)故障錄波主站系統(tǒng)的設(shè)計[J].云南電力技術(shù),2015,43(05):89-91.
[3]張琳波,李本瑜,翟海燕等.基于Hadoop技術(shù)的批量錄波數(shù)據(jù)高性能處理方法[J].云南電力技術(shù),2015,43(02):135-138.
[4]倫惠勤,駱燕婷,廖曉春等.同步數(shù)字傳輸體系(SDH)下的精確對時方案研究[J].武漢大學(xué)學(xué)報(工學(xué)版),2014,47(04):485-489+515.
[5]李戰(zhàn).基于Docker的容器集群調(diào)度機制的設(shè)計與實現(xiàn)[D].北京:北京郵電大學(xué),2018.
[6]尹高.基于Docker的服務(wù)器運維平臺的設(shè)計與實現(xiàn)[D].武漢:華中科技大學(xué),2016.