韋洪波,曹 偉,葉桂南,韋昌福,何伊妮
(廣西電網(wǎng)電力調(diào)度控制中心,廣西 南寧 530024)
事故追憶是電網(wǎng)調(diào)度自動(dòng)化系統(tǒng)的重要組成部分,是電網(wǎng)調(diào)度運(yùn)行人員進(jìn)行事故分析、調(diào)整系統(tǒng)運(yùn)行方式和保障電網(wǎng)安全經(jīng)濟(jì)運(yùn)行必不可少的工具[1],也可以為調(diào)度員培訓(xùn)仿真提供培訓(xùn)案例。
事故追憶系統(tǒng)由事故信息記錄和事故反演兩個(gè)部分組成:
(1)事故信息記錄:它通過(guò)記錄事故發(fā)生前后電網(wǎng)的各類事件順序,例如開(kāi)關(guān)斷開(kāi)、重合、保護(hù)動(dòng)作,以及事故發(fā)生前后一段時(shí)間內(nèi)的遙信和遙測(cè)數(shù)據(jù),為事故分析提供信息基礎(chǔ);
(2)事故反演:在事故信息記錄的基礎(chǔ)上,結(jié)合事故發(fā)生時(shí)的網(wǎng)絡(luò)拓?fù)湟约捌渌到y(tǒng)記錄的信息等,將當(dāng)時(shí)的事故情景進(jìn)行重演[1],直觀的展示故障發(fā)生前后電網(wǎng)的運(yùn)行情況。
受限于自身的存儲(chǔ)容量和數(shù)據(jù)處理性能,事故追憶系統(tǒng)一般從事故發(fā)生前某一時(shí)刻開(kāi)始記錄電網(wǎng)變化的數(shù)據(jù),而不會(huì)記錄事故發(fā)生前后的所有斷面數(shù)據(jù)和網(wǎng)架模型。這種數(shù)據(jù)記錄方式可以大大減少存儲(chǔ)資源,提高系統(tǒng)響應(yīng)效率,但是容易造成網(wǎng)架模型與記錄的數(shù)據(jù)不匹配,無(wú)法準(zhǔn)確反映事故發(fā)生時(shí)的情況。采用多態(tài)思想構(gòu)建的事故追憶系統(tǒng),解決了事故斷面與記錄數(shù)據(jù)的匹配問(wèn)題,但是無(wú)法有效應(yīng)對(duì)大規(guī)模數(shù)據(jù)的檢索與識(shí)別,系統(tǒng)擴(kuò)展性能和響應(yīng)用戶操作速度有待進(jìn)一步研究。
微服務(wù)(microservice)架構(gòu)繼承自面向服務(wù)架構(gòu)(service-oriented architecture,SOA),旨在將大型復(fù)雜應(yīng)用解耦為多個(gè)具有特定功能、松散自治的微服務(wù)[2]。目前,結(jié)合云計(jì)算和容器等技術(shù),微服務(wù)架構(gòu)已經(jīng)在電力行業(yè)得到廣泛應(yīng)用,并逐步發(fā)展為新的研究熱點(diǎn)[3]。文獻(xiàn)[4]通過(guò)分析電力云平臺(tái)的業(yè)務(wù)需求,提出采用微服務(wù)架構(gòu)理念構(gòu)建電力云平臺(tái)的設(shè)計(jì)方案,并對(duì)平臺(tái)的各個(gè)組件進(jìn)行分析。文獻(xiàn)[5]設(shè)計(jì)并實(shí)現(xiàn)了含微服務(wù)的分布式實(shí)時(shí)數(shù)據(jù)庫(kù),解決傳統(tǒng)調(diào)度自動(dòng)化系統(tǒng)實(shí)時(shí)數(shù)據(jù)庫(kù)響應(yīng)慢、不易擴(kuò)展的問(wèn)題;為了有效利用容器資源,在云計(jì)算平臺(tái)上設(shè)計(jì)了一種基于微服務(wù)架構(gòu)的EMS系統(tǒng),將系統(tǒng)程序部署在容器后,提出了基于MILP的容器資源調(diào)整策略;文獻(xiàn)[6]基于卡爾曼濾波法對(duì)突發(fā)負(fù)載進(jìn)行預(yù)測(cè),提升資源彈性供給效率。為了提高容器中應(yīng)用軟件的運(yùn)行穩(wěn)定性,采用長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(long short-term memory,LSTM)和卷積神經(jīng)網(wǎng)絡(luò)算法,從容器原始數(shù)據(jù)中自動(dòng)提取惡意軟件的攻擊特征,用于檢測(cè)及發(fā)現(xiàn)容器中存在的惡意軟件,提前阻斷潛在的攻擊行為;采用深度學(xué)習(xí)中的無(wú)監(jiān)督時(shí)間序列算法,通過(guò)比較當(dāng)前預(yù)測(cè)流量與當(dāng)前實(shí)際流量的差值,實(shí)現(xiàn)網(wǎng)絡(luò)異常檢測(cè)。這些工作較好的提升了容器環(huán)境下的資源利用效率,以及容器環(huán)境的網(wǎng)絡(luò)安全性和各類應(yīng)用運(yùn)行穩(wěn)定性,為建設(shè)微服務(wù)化的事故追憶系統(tǒng)提供了新的思路。
基于上述分析,應(yīng)用云計(jì)算技術(shù)和容器技術(shù),提出一種構(gòu)建微服務(wù)化的事故追憶系統(tǒng)的方法。在云計(jì)算平臺(tái)上,依據(jù)事故追憶系統(tǒng)的功能需求,構(gòu)造了電網(wǎng)模型、事故記錄、操作記錄和人機(jī)交互四個(gè)功能獨(dú)立的微服務(wù)對(duì)事故追憶系統(tǒng)進(jìn)行重構(gòu),各服務(wù)運(yùn)行在獨(dú)立的Docker容器中,并通過(guò)API網(wǎng)關(guān)與其他服務(wù)或應(yīng)用進(jìn)行交互;提出了基于LSTM算法的容器資源預(yù)測(cè)調(diào)度策略,對(duì)突變負(fù)載進(jìn)行預(yù)調(diào)度,有效提升系統(tǒng)響應(yīng)性能。實(shí)驗(yàn)結(jié)果表明,所開(kāi)發(fā)的事故追憶系統(tǒng)可靠性達(dá)到99.999 980%,在用戶響應(yīng)、擴(kuò)展性和穩(wěn)定性等方面具有較大的提升。
微服務(wù)架構(gòu)由Martin Fowler與James Lewis于2014年提出,是面向服務(wù)架構(gòu)(service oriented architecture,SOA)的繼承和發(fā)展。兩者的區(qū)別在于:SOA架構(gòu)側(cè)重于將多個(gè)單體應(yīng)用注冊(cè)至企業(yè)服務(wù)總線(enterprise service bus,ESB),各應(yīng)用通過(guò)ESB進(jìn)行數(shù)據(jù)交互,常用于粗粒度大型企業(yè)應(yīng)用系統(tǒng)的集成和開(kāi)發(fā)[7];而微服務(wù)的核心思想是將大型應(yīng)用系統(tǒng)按照業(yè)務(wù)邏輯和功能需求解耦為多個(gè)離散可復(fù)用、只完成單一特定的業(yè)務(wù)需求的小型服務(wù),實(shí)現(xiàn)去中心化[8]。微服務(wù)運(yùn)行在單獨(dú)的進(jìn)程中,與其他服務(wù)完全隔離,具有高度的自治性,便于搭建輕量級(jí)應(yīng)用,具有很高的靈活性和可擴(kuò)展性。
容器(container)是一種輕量級(jí)、靈活的虛擬化方式。如圖1所示,與傳統(tǒng)的虛擬機(jī)不同,容器創(chuàng)建在操作系統(tǒng)層面上,本質(zhì)上是宿主機(jī)上的一個(gè)進(jìn)程,共享下層操作系統(tǒng)的硬件資源,具有獨(dú)立的IP地址和操作系統(tǒng)管理員賬戶,重啟單一容器不會(huì)對(duì)其他容器造成影響[9],并且內(nèi)存、CPU 和存儲(chǔ)效率得到大幅度提高。容器具有輕量級(jí)、低成本和可移植等優(yōu)點(diǎn)。運(yùn)行在不同容器中的服務(wù)實(shí)際上處于相互隔離的環(huán)境之中,可快速實(shí)現(xiàn)單個(gè)服務(wù)的熱升級(jí),滿足負(fù)載突變的需求。
云計(jì)算是虛擬化、分布式和負(fù)載均衡等多種計(jì)算機(jī)技術(shù)的混合體,它通過(guò)虛擬化技術(shù)將多種硬件資源抽象到計(jì)算資源池,為用戶提供快捷簡(jiǎn)單的計(jì)算能力支持。與傳統(tǒng)的計(jì)算模式相比,具有存儲(chǔ)容量大、異地災(zāi)備和負(fù)載均衡的優(yōu)勢(shì)[10]。
目前云計(jì)算及其相關(guān)技術(shù)已經(jīng)在電力系統(tǒng)得到廣泛的應(yīng)用[11-13],為事故追憶系統(tǒng)在云平臺(tái)上部署奠定了良好基礎(chǔ)。系統(tǒng)涉及從多個(gè)應(yīng)用系統(tǒng)調(diào)取數(shù)據(jù),是一個(gè)多源信息交互的系統(tǒng)。由于開(kāi)發(fā)方式、部署環(huán)境等方面存在差異,各應(yīng)用系統(tǒng)的數(shù)據(jù)接口和運(yùn)行效率不盡相同。
本文根據(jù)實(shí)際功能需求,采用圖2所示系統(tǒng)結(jié)構(gòu),將系統(tǒng)解耦為電網(wǎng)模型、事故記錄、操作記錄和人機(jī)交互四個(gè)服務(wù),各服務(wù)只需響應(yīng)與之相關(guān)的業(yè)務(wù)活動(dòng)和數(shù)據(jù)交互,不需要所有服務(wù)聯(lián)動(dòng),從而降低對(duì)基礎(chǔ)平臺(tái)資源的要求。此外,所有的服務(wù)均部署在云計(jì)算平臺(tái)的Docker容器中,使容器中每一個(gè)獨(dú)立的服務(wù)單元都能夠共享云平臺(tái)提供的軟硬件資源環(huán)境,由于各服務(wù)之間不存在耦合關(guān)系且存在多個(gè)備份,因此服務(wù)升級(jí)過(guò)程中系統(tǒng)仍然可用,也不會(huì)對(duì)其他服務(wù)造成影響,保障了系統(tǒng)的可用性和易維護(hù)性,同時(shí)確保系統(tǒng)擁有充足的動(dòng)態(tài)冗余資源及良好的災(zāi)備性能。通過(guò)統(tǒng)一API網(wǎng)關(guān)聚合各類服務(wù)接口,為各類終端訪問(wèn)提供統(tǒng)一的服務(wù)入口,動(dòng)態(tài)調(diào)控終端用戶的訪問(wèn)流量,實(shí)現(xiàn)訪問(wèn)入口側(cè)的負(fù)載均衡。
所述方法在Windows 通信技術(shù)平臺(tái)(windows communication foundation,WCF)上,采用Visual Studio2017作為開(kāi)發(fā)工具,通過(guò)C#和JavaScript編程語(yǔ)言,在阿里云(alibaba cloud apsara stack)上開(kāi)發(fā)和測(cè)試了微服務(wù)架構(gòu)下的事故追憶系統(tǒng)。所開(kāi)發(fā)的系統(tǒng)部署在Docker容器,通過(guò)IIS8.0對(duì)服務(wù)進(jìn)行發(fā)布。
用WCF具體實(shí)現(xiàn)了事故追憶系統(tǒng)下的電網(wǎng)模型、事故記錄、操作記錄和人機(jī)交互四個(gè)服務(wù),分別對(duì)應(yīng)于PNMService、ARService、ORService、HCIService四個(gè)標(biāo)準(zhǔn)的服務(wù)接口,并在接口中封裝了讀寫(xiě)信息源數(shù)據(jù)和云平臺(tái)RDS、OSS的方法,各服務(wù)間的交互關(guān)系如圖3所示。
事故記錄服務(wù):在觸發(fā)源被啟動(dòng)后,從事故追憶信息源處讀取預(yù)置時(shí)間段內(nèi)的數(shù)據(jù),存儲(chǔ)在云平臺(tái)的OSS中,并在RDS中對(duì)應(yīng)生成一條新的記錄。
電網(wǎng)模型服務(wù):在事故觸發(fā)源啟動(dòng)時(shí),從前置系統(tǒng)獲取當(dāng)前的電網(wǎng)模型,并生成cim文件保存在OSS中;在事故反演時(shí),將cim文件返回給服務(wù)消費(fèi)者。
操作記錄服務(wù):讀取事故發(fā)生時(shí)段的調(diào)度日志、網(wǎng)絡(luò)發(fā)令、保護(hù)投退等調(diào)度運(yùn)行人員記錄的內(nèi)容,并進(jìn)行篩查,分析事故相關(guān)的設(shè)備操作。
人機(jī)交互服務(wù):響應(yīng)用戶端的訪問(wèn),生成圖形界面參數(shù),并返回顯示。用戶端訪問(wèn)時(shí),API網(wǎng)關(guān)動(dòng)態(tài)分配流量至人機(jī)交互服務(wù)。界面顯示的內(nèi)容分為“圖形”和“數(shù)值”兩類,人機(jī)交互服務(wù)僅提供裝載圖像、數(shù)據(jù)的外殼及界面交互邏輯功能,服務(wù)本身不帶有數(shù)據(jù)或圖形,圖形和數(shù)值字符串由其他服務(wù)返回。
其他服務(wù)消費(fèi)者經(jīng)過(guò)API網(wǎng)關(guān)的審核后,可訪問(wèn)服務(wù)注冊(cè)中心,并與上述服務(wù)建立連接關(guān)系,獲得服務(wù)內(nèi)定義的各類功能的返回值,完成數(shù)據(jù)交互交互。初期實(shí)現(xiàn)的事故追憶涉及到從前置系統(tǒng)、網(wǎng)絡(luò)發(fā)令、調(diào)度日志等9個(gè)系統(tǒng)獲取故障信息,這些系統(tǒng)采用SOA架構(gòu)進(jìn)行開(kāi)發(fā)和集成,其接口注冊(cè)在統(tǒng)一的服務(wù)總線供服務(wù)消費(fèi)者檢索和引用,將其接入單獨(dú)的容器后,可被檢索和調(diào)用。在Visual Studio 2019開(kāi)發(fā)平臺(tái)下添加人機(jī)交互服務(wù)引用示例如圖4 所示。
當(dāng)用戶端訪問(wèn)系統(tǒng)時(shí),服務(wù)響應(yīng)如圖5所示。
step1:“外殼”加載。當(dāng)用戶鏈接到系統(tǒng)時(shí),調(diào)用人機(jī)交互服務(wù),響應(yīng)用戶端的訪問(wèn)請(qǐng)求。服務(wù)將Highcharts的底層js文件內(nèi)容嵌入到網(wǎng)頁(yè),并發(fā)送到用戶瀏覽器,從而搭建起顯示圖形的“外殼”,此過(guò)程僅在用戶連接時(shí)進(jìn)行一次,步驟如圖5中的①-②。
step2:形成圖形字符。此過(guò)程如圖5中的③-⑦所示。作為服務(wù)消費(fèi)者,人機(jī)交互服務(wù)通過(guò)AJAX[14],向服務(wù)提供者電網(wǎng)模型服務(wù)、事故記錄服務(wù)和操作記錄服務(wù)傳遞檢索數(shù)據(jù)所需的關(guān)鍵詞。服務(wù)收到關(guān)鍵詞后,從云計(jì)算平臺(tái)的OSS和RDS獲取繪圖的基礎(chǔ)數(shù)據(jù),并將繪圖基礎(chǔ)數(shù)據(jù)整理成可以在界面上直接顯示的圖形字符,再發(fā)送至用戶端。
step3:圖形顯示。如圖5中的⑧-11,用戶端的瀏覽器收到圖形字符后,在HTML網(wǎng)頁(yè)上加載圖形框架,再將圖形字符填充在圖形顯示區(qū)內(nèi)。完成后,按照預(yù)定義的曲線顏色和背景顏色對(duì)圖形進(jìn)行渲染,最終實(shí)現(xiàn)圖形字符在用戶瀏覽器的“外殼”中顯示。
用戶操作時(shí),人機(jī)交互服務(wù)結(jié)合刷新區(qū)域,從API網(wǎng)關(guān)選擇性的調(diào)用已注冊(cè)的服務(wù),獲得可顯示的字符,有針對(duì)性的對(duì)頁(yè)面中響應(yīng)用戶操作并發(fā)生變化的部分進(jìn)行更新,而不是對(duì)整個(gè)HTML頁(yè)面進(jìn)行刷新。這種方式可有效減少用戶操作過(guò)程中的流量消耗,提升界面響應(yīng)速度。
為了使事故追憶系統(tǒng)中各微服務(wù)具備較高的并發(fā)能力和應(yīng)對(duì)突變負(fù)載能力,從云計(jì)算平臺(tái)的監(jiān)控系統(tǒng)采集各容器存儲(chǔ)空間、網(wǎng)絡(luò)用量、訪問(wèn)數(shù),采用LSTM算法預(yù)測(cè)節(jié)點(diǎn)的內(nèi)存使用量、CPU利用率等負(fù)載參數(shù),提前做好預(yù)調(diào)策略,在保證系統(tǒng)正常運(yùn)行的同時(shí),提升資源利用率。
LSTM是一種循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN),相較于普通的RNN網(wǎng)絡(luò),LSTM能更好的消除長(zhǎng)時(shí)間序列訓(xùn)練過(guò)程中存在的梯度消失和梯度爆炸問(wèn)題,可高效獲取歷史時(shí)序數(shù)據(jù)的特征信息,在長(zhǎng)時(shí)序預(yù)測(cè)方面具有良好的效果[15]。LSTM的結(jié)構(gòu)如圖6所示,由輸入門(mén)(input gate)、遺忘門(mén)(forget gate)和輸出門(mén)(output gate)構(gòu)成[16-17],各個(gè)部分采用式(1)-(6)進(jìn)行計(jì)算。
(1)
ft=σ(Wf·[xt,fht-1]+bf)
(2)
ot=σ(Wo·[xt,oht-1]+bo)
(3)
ct=ft?ct-1+it?tanh(Wc·[xt,ht-1]+bc)
(4)
ht=ot?tanh(ct)
(5)
預(yù)測(cè)結(jié)果為:
yt=ht
(6)
LSTM神經(jīng)網(wǎng)絡(luò)的訓(xùn)練包括四個(gè)步驟:
(1)根據(jù)實(shí)際需求以及訓(xùn)練數(shù)據(jù)結(jié)構(gòu),確定LSTM網(wǎng)絡(luò)的深度和神經(jīng)元數(shù)量;
(2)前向計(jì)算每個(gè)神經(jīng)元的輸出值。即結(jié)合訓(xùn)練數(shù)據(jù),通過(guò)(1)-(5)式,分別計(jì)算it、ft、ot、ct、ht五個(gè)向量的值;
(3)反向計(jì)算每個(gè)神經(jīng)元的誤差項(xiàng)。在訓(xùn)練過(guò)程中, LSTM的誤差項(xiàng)反向傳播存在于兩個(gè)方向:一個(gè)是從當(dāng)前時(shí)刻開(kāi)始,沿時(shí)間的反向傳播,另一個(gè)是將誤差項(xiàng)向上傳遞給下一個(gè)[18-19]。
(4)根據(jù)上述步驟計(jì)算出來(lái)的神經(jīng)元誤差項(xiàng),重新計(jì)算每個(gè)權(quán)重的梯度。依此類推,完成整個(gè)LSTM網(wǎng)絡(luò)的訓(xùn)練。
云計(jì)算平臺(tái)監(jiān)控系統(tǒng)采集的容器負(fù)載數(shù)據(jù)包括磁盤(pán)使用量、網(wǎng)絡(luò)使用量、訪問(wèn)數(shù)、內(nèi)存使用率和CPU利用率,這些數(shù)據(jù)是一種典型的非線性、動(dòng)態(tài)長(zhǎng)時(shí)間序列數(shù)據(jù)。采用LSTM算法進(jìn)行動(dòng)態(tài)預(yù)測(cè)時(shí),將容器集群中磁盤(pán)使用量、網(wǎng)絡(luò)使用量和訪問(wèn)數(shù)作為輸入特征變量,內(nèi)存使用率和CPU利用率作為輸出變量,通過(guò)LSTM算法挖掘特征變量與輸出變量之間的對(duì)應(yīng)關(guān)系,經(jīng)模型訓(xùn)練后,獲得預(yù)測(cè)模型的網(wǎng)絡(luò)參數(shù),供實(shí)時(shí)調(diào)度使用。其步驟如圖7所示。
Step1:從云平臺(tái)監(jiān)控系統(tǒng)中采集每個(gè)容器的內(nèi)存、CPU、訪問(wèn)數(shù)、磁盤(pán)、網(wǎng)絡(luò)等系統(tǒng)資源使用率(量);
Step2:構(gòu)造數(shù)據(jù)集。訪問(wèn)數(shù)、磁盤(pán)、網(wǎng)絡(luò)為輸入X={x1,x2,…,xn},CPU、內(nèi)存為輸出Y={y1,y2,…,yn},按照8:2將其劃分為訓(xùn)練集和測(cè)試集,并采用式(7)進(jìn)行歸一化;
(7)
式中:x'表示參數(shù)歸一化后的值,x表示原始值,xmax、xmin分別表示序列中x的最大值、最小值。
Step3:訓(xùn)練LSTM模型。設(shè)置LSTM網(wǎng)絡(luò)的窗口和預(yù)測(cè)步長(zhǎng),將輸入數(shù)據(jù)x、ht-1和ct-1輸入隱層單元,獲得經(jīng)過(guò)遺忘門(mén)產(chǎn)生的[0,1]狀態(tài)值;
Step4:采用tanh函數(shù)處理step3的輸出值,產(chǎn)生t時(shí)刻元胞的狀態(tài)ct;
Step5:在輸入門(mén)處,經(jīng)σ函數(shù)可以得到初始輸出,結(jié)合tanh函數(shù)對(duì)輸出進(jìn)行[-1,1]的數(shù)據(jù)縮放并與其相乘得到預(yù)測(cè)輸出ht;
Step5:計(jì)算預(yù)測(cè)輸出ht與實(shí)際標(biāo)簽的損失,采用BP算法反向調(diào)整模型的權(quán)重矩陣。
Step6:訓(xùn)練完成后,將實(shí)時(shí)采樣數(shù)據(jù)輸入最終的LSTM預(yù)測(cè)模型,輸出預(yù)測(cè)值yn+1(即下一時(shí)段的內(nèi)存和CPU使用率)。
Step7:將預(yù)測(cè)值返回監(jiān)控系統(tǒng),若上述兩個(gè)指標(biāo)中的任一預(yù)測(cè)值達(dá)到當(dāng)前值的高于80%或低于20%,則執(zhí)行容器的擴(kuò)展或收縮。
為了不失一般性,假設(shè)各子系統(tǒng)、傳輸通道和主機(jī)可靠性相同,對(duì)所述事故追憶系統(tǒng)的可靠性進(jìn)行分析,并與傳統(tǒng)系統(tǒng)進(jìn)行對(duì)比。
傳統(tǒng)事故追憶系統(tǒng)的架構(gòu)簡(jiǎn)圖8所示,其本質(zhì)是一個(gè)單體應(yīng)用,整個(gè)系統(tǒng)的程序邏輯耦合在一起,各程序模塊互相關(guān)聯(lián),任何一個(gè)環(huán)節(jié)出現(xiàn)問(wèn)題,系統(tǒng)將無(wú)法使用。
雖然各個(gè)程序模塊的程序邏輯不同,但是它們的可靠性指標(biāo)基本一致。因此,可將其抽象為一個(gè)可修復(fù)元件。傳統(tǒng)系統(tǒng)由多個(gè)程序模塊組成,采用雙機(jī)冗余配置,其可靠性邏輯框圖可用圖9表示:
所提系統(tǒng)架構(gòu)簡(jiǎn)圖如圖10所示。每個(gè)系統(tǒng)程序模塊相互獨(dú)立,并由多個(gè)微服務(wù)構(gòu)成,數(shù)據(jù)庫(kù)被RDS取代。
所述系統(tǒng)可進(jìn)行應(yīng)用服務(wù)級(jí)別的橫向拓展,其可靠性邏輯框圖可用圖11表示:
其中,m大于等于2。
對(duì)于任意一個(gè)可修復(fù)元件或系統(tǒng),其可靠性可根據(jù)式(8)進(jìn)行計(jì)算。
(8)
其中,MTBF為平均無(wú)故障時(shí)間(mean time between failure,MTBF),MTTR為平均故障恢復(fù)時(shí)間(mean time to repair,MTTR)。λ為失效率(失效次數(shù)/年),μ為修復(fù)率(修復(fù)次數(shù)/年),其定義如下:
(9)
(10)
對(duì)于n個(gè)可修復(fù)元件,若采用串聯(lián)方式,有:
(11)
(12)
若2個(gè)元件為并聯(lián)方式,有:
(13)
μ=μ1+μ2
(14)
由阿里云性能測(cè)試和業(yè)務(wù)實(shí)時(shí)監(jiān)控服務(wù)測(cè)試可知,上述各元件的MTBF和MTTR如表1所示。
結(jié)合可靠性框圖,將表1數(shù)據(jù)代入式(8)~(14)中,可得傳統(tǒng)系統(tǒng)應(yīng)用的可靠性及年故障時(shí)長(zhǎng)(分鐘):
(15)
所提系統(tǒng)的可靠性及年故障時(shí)長(zhǎng)(分鐘):
(16)
可見(jiàn),所提系統(tǒng)的年故障時(shí)長(zhǎng)較傳統(tǒng)架構(gòu)相比,減少了約14倍。
系統(tǒng)部署在阿里云計(jì)算平臺(tái)(alibaba cloud apsara stack)上,基礎(chǔ)配置為3臺(tái)服務(wù)器,4核8G內(nèi)存,4M帶寬??紤]到事故追憶系統(tǒng)在電網(wǎng)正常運(yùn)行時(shí)很少使用、故障時(shí)多個(gè)用戶在短時(shí)間內(nèi)登陸的情況,對(duì)系統(tǒng)進(jìn)行壓力測(cè)試時(shí),上限用戶設(shè)為20個(gè),測(cè)試結(jié)果如表2所示。
表2 系統(tǒng)壓力測(cè)試結(jié)果Tab.2 Results of system pressure test
由表2可知:系統(tǒng)處理的請(qǐng)求數(shù)為37154,平均響應(yīng)時(shí)間為42.39 ms,成功率達(dá)到100%。在多系統(tǒng)數(shù)據(jù)交互的情況下,無(wú)響應(yīng)超時(shí),每秒處理的事務(wù)數(shù)(TPS)達(dá)249.38,保證系統(tǒng)的可用性,同時(shí)具有較高的數(shù)據(jù)訪問(wèn)效率。
本文提出一種大數(shù)據(jù)環(huán)境下支持多源信息融合的微服務(wù)化電網(wǎng)事故追憶系統(tǒng)設(shè)計(jì)方法。將事故追憶系統(tǒng)重構(gòu)為電網(wǎng)模型、事故記錄、操作記錄和人機(jī)交互四個(gè)細(xì)粒度微服務(wù),并部署在云計(jì)算平臺(tái)的容器中運(yùn)行,通過(guò)LSTM算法對(duì)容器資源進(jìn)行預(yù)測(cè)調(diào)度,提高了系統(tǒng)的響應(yīng)速度、處理效率和資源利用率;從前置系統(tǒng)、調(diào)度日志、網(wǎng)絡(luò)發(fā)令等系統(tǒng)獲取事故時(shí)間段內(nèi)的多種事故信息,豐富了追憶信息源,為運(yùn)行分析人員分析事故成因提供更好的服務(wù),也為新一代事故追憶系統(tǒng)設(shè)計(jì)提供參考。實(shí)際測(cè)試效果表明,采用該方法設(shè)計(jì)的事故追憶系統(tǒng)可靠性高、實(shí)時(shí)性強(qiáng)、運(yùn)行穩(wěn)定可靠。