郭秀才, 張悅, 賀耀宜
(1.西安科技大學(xué) 電氣與控制工程學(xué)院, 陜西 西安 710054;2.中煤科工集團常州研究院有限公司, 江蘇 常州 213015;3.天地(常州)自動化股份有限公司, 江蘇 常州 213015)
近年來,隨著智慧礦山建設(shè)逐步發(fā)展,煤礦安全水平得到了極大提升,但智慧礦山系統(tǒng)中的海量數(shù)據(jù)處理問題隨之而來。據(jù)統(tǒng)計,目前每座礦山建有30~50個監(jiān)控子系統(tǒng)[1-2],包括安全監(jiān)控系統(tǒng)、帶式輸送機控制系統(tǒng)、通風(fēng)機控制系統(tǒng)、變電所監(jiān)控系統(tǒng)等,且每個監(jiān)控子系統(tǒng)有1 000~2 000個測點,導(dǎo)致智慧礦山系統(tǒng)數(shù)據(jù)量大、種類繁雜[3-5]。目前,智慧礦山均基于云計算架構(gòu),軟件平臺運行在云端,不同礦山之間的數(shù)據(jù)將產(chǎn)生關(guān)聯(lián),且子系統(tǒng)、測點、用戶數(shù)量會越來越多。單一服務(wù)器無法支撐當(dāng)前海量數(shù)據(jù)處理請求,不能滿足實際生產(chǎn)管理需求,因此需要多臺服務(wù)器同時處理并發(fā)的數(shù)據(jù)存取及用戶訪問請求,通過負載均衡算法[6-7]將相關(guān)請求合理分配給每臺服務(wù)器。
負載均衡算法包括靜態(tài)、動態(tài)兩種。靜態(tài)負載均衡算法按照固定比例分配任務(wù),如輪詢算法、加權(quán)輪詢算法;動態(tài)負載均衡算法根據(jù)當(dāng)前服務(wù)器狀態(tài)分配任務(wù),如最小連接數(shù)(Least Connection,LC)算法、加權(quán)最小連接數(shù)(Weighted Least Connection,WLC)算法[8-9]。其中WLC算法是目前最常用的動態(tài)負載均衡算法。由于煤礦行業(yè)的特殊性和智慧礦山系統(tǒng)數(shù)據(jù)類型的復(fù)雜性,現(xiàn)有負載均衡算法在處理智慧礦山系統(tǒng)數(shù)據(jù)時,存在處理速度慢、無法合理利用現(xiàn)有資源完成任務(wù)調(diào)度等問題。針對該問題,本文提出了一種基于布谷鳥搜索(Cuckoo Search,CS)[10]的WLC(CS-WLC)算法,并將其部署在智慧礦山軟件平臺,通過試驗驗證了其具有較好的負載均衡效果。
(1)
式中HSk為服務(wù)器Sk權(quán)值。
WLC算法中各服務(wù)器用相應(yīng)權(quán)值表示其性能,在分配新的連接請求時,盡可能使服務(wù)器權(quán)值與該服務(wù)器性能呈正比。但WLC算法僅使用連接數(shù)作為性能指標,任務(wù)分配的準確度不高,因此需要進一步引入服務(wù)器類別、CPU利用率等指標進行綜合考量[7]。
CS算法是由布谷鳥尋窩方式演變而來。在自然界中,布谷鳥通過隨機方式尋找合適的鳥窩:布谷鳥在飛行過程中發(fā)現(xiàn)候選鳥窩進行保留并不斷更新,最終找到最優(yōu)鳥窩。鳥窩位置更新公式為[10]
xu(t+1)=xu(t)+α?L
(2)
式中:xu(t)為第u個鳥窩在第t代的位置;α為步長;L為隨機搜索路徑。
當(dāng)鳥窩位置更新后,取[0,1]內(nèi)服從均勻分布的隨機數(shù)r與被宿主發(fā)現(xiàn)的概率P比較,若r>P,則更新xu(t+1),反之保留當(dāng)前的鳥窩位置。
本文在傳統(tǒng)WLC算法基礎(chǔ)上引入CS算法,基本思想:針對智慧礦山系統(tǒng)服務(wù)器,先通過CS算法選取較優(yōu)解集,再運行WLC算法,在較優(yōu)解集內(nèi)選取當(dāng)前連接數(shù)最小的服務(wù)器,完成負載匹配任務(wù)。
智慧礦山軟件平臺各業(yè)務(wù)模塊根據(jù)數(shù)據(jù)存取和訪問請求的不同分布在多臺后端服務(wù)器上。當(dāng)煤礦各類監(jiān)控子系統(tǒng)向智慧礦山軟件平臺發(fā)送數(shù)據(jù)時,由于后端服務(wù)器長時間運行,負載均衡服務(wù)器上記錄的負載量不能實時準確地反映各后端服務(wù)器負載情況,所以需要周期性采集各后端服務(wù)器的負載信息,即每隔一定時間T,各后端服務(wù)器向負載均衡服務(wù)器反饋自身CPU利用率、內(nèi)存利用率、磁盤訪問率、網(wǎng)絡(luò)帶寬占用率、進程數(shù)量占用率,從而保證負載均衡服務(wù)器記錄數(shù)據(jù)的準確性。
智慧礦山軟件平臺整體部署如圖1所示。各后端服務(wù)器承載數(shù)據(jù)存取及用戶訪問業(yè)務(wù)功能。前端負載均衡服務(wù)器內(nèi)置負載均衡管理模塊和Nginx反向代理模塊,前者用于判別后端服務(wù)器運行情況,后者根據(jù)前者判別結(jié)果將實時數(shù)據(jù)存取和用戶訪問請求分配給當(dāng)前負載較輕的后端服務(wù)器。
圖1 智慧礦山軟件平臺整體部署
基于CS-WLC算法的負載均衡過程如下。
(1) 計算各后端服務(wù)器最大處理能力。假設(shè)第i臺后端服務(wù)器Si的CPU數(shù)量為bi,最大處理速率、內(nèi)存容量、磁盤IO速率、網(wǎng)絡(luò)吞吐量、進程數(shù)分別為Ei,Mi,Di,Ni,fi,其最大處理能力為
Wi=K1biEi+K2Mi+K3Di+K4Ni+K5fi
(3)
(4)
當(dāng)前后端服務(wù)器利用率為
(5)
(3) 設(shè)置m個參考值A(chǔ)1,A2,…,Am,并與GSi比較。當(dāng)GSi≤A1時,將GSi放入集合gse1;當(dāng)A1 (4) 采用CS算法對gse1,gse2,…,gsem進行全局尋優(yōu),得到一組較優(yōu)解,其中每個元素均為各集合中的最優(yōu)值。 (5) 采用WLC算法選取最終后端服務(wù)器。在周期T內(nèi),單一的連接數(shù)無法準確反映當(dāng)前后端服務(wù)器的負載接收能力,因此為各后端服務(wù)器賦予新的權(quán)值,該權(quán)值與后端服務(wù)器連接數(shù)及使用頻率呈正比。當(dāng)新的請求到來時,采用WLC算法在較優(yōu)解中選取當(dāng)前最優(yōu)解,并將請求分配給該后端服務(wù)器。 假設(shè)第j(j=1,2,…,m)臺后端服務(wù)器Sj權(quán)值為HSj,其連接數(shù)為CSj,則總的連接數(shù)為 (6) 當(dāng)?shù)趆(h=1,2,…,m,h≠j)臺后端服務(wù)器Sh的連接數(shù)CSh滿足式(7)時,將新的請求分配給它。 (7) 式中HSh為后端服務(wù)器Sh權(quán)值。 (8) 利用某企業(yè)“監(jiān)控類軟件平臺、框架研究及示范項目”研究成果建立分布式融合性監(jiān)控系統(tǒng)軟件平臺,設(shè)置1臺負載均衡服務(wù)器、5臺后端服務(wù)器,后端服務(wù)器運行數(shù)據(jù)存取及訪問服務(wù)功能模塊。采用煤礦井下實際數(shù)據(jù)(瓦斯?jié)舛取O含量、風(fēng)速、溫度等),對CS-WLC算法負載均衡效果進行驗證。試驗設(shè)備見表1。利用Nginx搭建Web服務(wù)器集群[11-13],采用Apache測試工具ApacheBench[14-15]測試軟件平臺分別采用WLC算法和CS-WLC算法時的應(yīng)答時延和響應(yīng)連接數(shù)。設(shè)置CS-WLC算法中被宿主發(fā)現(xiàn)的概率P=0.25,后端服務(wù)器處理速率、內(nèi)存容量、磁盤IO速率、網(wǎng)絡(luò)吞吐量、進程數(shù)對應(yīng)權(quán)值{K1,K2,K3,K4,K5}={0.3,0.2,0.2,0.2,0.1},各后端服務(wù)器權(quán)值為{0.3,0.2,0.3,0.1,0.1}。 表1 試驗設(shè)備 試驗結(jié)果如圖2所示??煽闯鲈谌诤闲员O(jiān)控系統(tǒng)數(shù)據(jù)量不斷增加的情況下,CS-WLC算法在數(shù)據(jù)匹配方面有明顯優(yōu)勢:在連接數(shù)為1 000時,采用CS-WLC算法時系統(tǒng)應(yīng)答時延比采用WLC算法時降低了12.997%,響應(yīng)連接數(shù)提高了5.61%;在連接數(shù)為1 500時,采用CS-WLS算法時系統(tǒng)應(yīng)答時延比采用WLS算法時降低了13.829%,響應(yīng)連接數(shù)提高了9.15%。 CS-WLC算法用于智慧礦山軟件平臺解決負載均衡問題時,先采用CS算法對后端服務(wù)器進行全局尋優(yōu),得到一組較優(yōu)解集合,再采用WLC算法從該集合中選取負載較輕的后端服務(wù)器來處理數(shù)據(jù)存取及用戶訪問請求,從而減少了最優(yōu)后端服務(wù)器選取時間,有利于智慧礦山軟件平臺高效運行。在相同條件下分別將該算法及WLC算法運行在分布式融合性監(jiān)控系統(tǒng)軟件平臺,測試2種算法的應(yīng)答時延及響應(yīng)連接數(shù),結(jié)果表明CS-WLC算法的應(yīng)答時延較小、響應(yīng)連接數(shù)較多,從而驗證了該算法具有更好的負載均衡效果,可有效提高智慧礦山軟件平臺的數(shù)據(jù)處理效率。 (a) 應(yīng)答時延 (b) 響應(yīng)連接數(shù)3 試驗驗證
4 結(jié)語