尹鑫 王宏偉 紀(jì)淼淼
摘 要 本文首先對(duì)服務(wù)化軟件系統(tǒng)運(yùn)行時(shí)資源動(dòng)態(tài)分配的主要表現(xiàn)進(jìn)行了分析;其次,圍繞功能特性、策略原理、實(shí)踐分析三個(gè)方面,提出了自適應(yīng)背景下服務(wù)化軟件系統(tǒng)的運(yùn)行時(shí)資源動(dòng)態(tài)分配方法。
關(guān)鍵詞 軟件系統(tǒng);資源配置;內(nèi)部服務(wù)層
引言
自適應(yīng)能力是保障軟件系統(tǒng)安全、穩(wěn)定運(yùn)行的重要基礎(chǔ)。對(duì)于服務(wù)化軟件系統(tǒng)而言,這一能力的實(shí)現(xiàn)質(zhì)量與內(nèi)部服務(wù)層中各業(yè)務(wù)模塊的動(dòng)態(tài)資源分配水平密切相關(guān)。基于此,我們有必要對(duì)服務(wù)化軟件系統(tǒng)的運(yùn)行時(shí)資源動(dòng)態(tài)分配方法進(jìn)行討論探析。
1服務(wù)化軟件系統(tǒng)運(yùn)行時(shí)資源動(dòng)態(tài)分配的主要表現(xiàn)
在傳統(tǒng)時(shí)期,常規(guī)的軟件系統(tǒng)主要由“數(shù)據(jù)訪問(wèn)層”、“業(yè)務(wù)邏輯層”以及“語(yǔ)言表現(xiàn)層”三個(gè)部分構(gòu)成。在服務(wù)化軟件的實(shí)際運(yùn)行時(shí),任何一個(gè)看似簡(jiǎn)易、單調(diào)的前臺(tái)操作行為,都有可能同時(shí)調(diào)動(dòng)后臺(tái)服務(wù)層中多個(gè)服務(wù)模塊。從這一方面來(lái)看,可將服務(wù)化架構(gòu)視為軟件系統(tǒng)未來(lái)發(fā)展的必然趨勢(shì),其與傳統(tǒng)的軟件系統(tǒng)相比,更能清晰、準(zhǔn)確地劃分和驅(qū)動(dòng)各類業(yè)務(wù)服務(wù)模塊。
但隨之而來(lái)的,龐大、復(fù)雜的“內(nèi)部服務(wù)層”模塊體系,勢(shì)必會(huì)帶來(lái)有限系統(tǒng)資源的合理配置問(wèn)題。此時(shí),若采取最直接、最簡(jiǎn)單的均等化資源分配方法,一方面會(huì)導(dǎo)致閑置模塊的資源占用過(guò)多,出現(xiàn)明顯的浪費(fèi)情況。另一方面,也會(huì)使訪問(wèn)應(yīng)用較頻繁的模塊無(wú)法享受到充足的資源支持,進(jìn)而降低服務(wù)化軟件系統(tǒng)的運(yùn)行質(zhì)量。所以,為了解決這一問(wèn)題,達(dá)成良好的資源配置效果,就必須要賦予服務(wù)化軟件系統(tǒng)以動(dòng)態(tài)化、自主化的資源調(diào)借與配置能力,做到按需分配、按時(shí)分配[1]。
2服務(wù)化軟件系統(tǒng)運(yùn)行時(shí)資源動(dòng)態(tài)分配的優(yōu)化方法
2.1 資源動(dòng)態(tài)分配方法的功能特性
要想實(shí)現(xiàn)服務(wù)化軟件系統(tǒng)在運(yùn)行過(guò)程中動(dòng)態(tài)化的資源分配,就必須具備以下四點(diǎn)功能特性:①自配置功能,即可基于軟件系統(tǒng)應(yīng)用環(huán)境的變化,對(duì)自身的資源配置進(jìn)行自動(dòng)調(diào)整;②自優(yōu)化功能,即在自配置功能的變化基礎(chǔ)上,逐漸掌握最佳的資源配置方法,從而長(zhǎng)期保持高水平的業(yè)務(wù)質(zhì)量;③自治愈功能,即及時(shí)、有效地發(fā)現(xiàn)并診斷系統(tǒng)故障,以此維護(hù)軟件系統(tǒng)的運(yùn)行穩(wěn)定性;④自保護(hù)功能,即在系統(tǒng)外圍建立起一定的防護(hù)屏障,避免軟件系統(tǒng)在運(yùn)行過(guò)程中遭受惡意攻擊。在本文的研究語(yǔ)境下,由于無(wú)須考慮軟件系統(tǒng)的安全性問(wèn)題,所以將自配置功能與自優(yōu)化功能作為關(guān)注重點(diǎn)。
2.2 資源動(dòng)態(tài)分配方法的策略原理
預(yù)設(shè)出一個(gè)抽象的服務(wù)化軟件系統(tǒng)“內(nèi)部服務(wù)層”,并服務(wù)層中納入7個(gè)業(yè)務(wù)服務(wù)模塊,即Service1至Service7。其中,Service1、Service2、Service5、Service7為自上而下依次執(zhí)行的串行服務(wù)組,其余三個(gè)模塊為可同時(shí)執(zhí)行的并行服務(wù)組。在此基礎(chǔ)上,設(shè)Li為軟件系統(tǒng)資源動(dòng)態(tài)分配的自適應(yīng)變量,即當(dāng)運(yùn)行至第i組時(shí),組內(nèi)各業(yè)務(wù)服務(wù)模塊在系統(tǒng)CPU中的平均資源負(fù)載值。同時(shí),假設(shè)資源動(dòng)態(tài)分配方法的自適應(yīng)周期為5min,在此周期內(nèi)以10s為間隔進(jìn)行CPU資源使用情況的采集,進(jìn)而獲得30次不同時(shí)段的值,作為計(jì)算平均負(fù)載量的基礎(chǔ)項(xiàng)。由此,便可列出公式與。其中,J為服務(wù)化軟件系統(tǒng)中服務(wù)組的資源總量,Mi,j為運(yùn)行至第i組時(shí)服務(wù)組中的第j個(gè)資源,Lj為5min系統(tǒng)自適應(yīng)周期內(nèi)第i服務(wù)組中單一資源的CPU占有率,N為CPU資源使用情況的采集次數(shù),即。
其后,在服務(wù)化軟件系統(tǒng)的過(guò)程當(dāng)中,若Li的數(shù)值大于預(yù)設(shè)臨界值Lk,則視為該服務(wù)組出現(xiàn)超負(fù)載情況,需要增加均值以外的資源分配。同時(shí),基于服務(wù)組負(fù)載變化情況與服務(wù)化軟件系統(tǒng)中資源分配數(shù)量的線性關(guān)系,可推出公式,△J即服務(wù)化軟件系統(tǒng)中運(yùn)行到第i組時(shí)服務(wù)組具體的資源需求量。基于5min自適應(yīng)周期完成這一具體數(shù)值的運(yùn)算后,即可將其代入到服務(wù)化軟件系統(tǒng)的nginx.conf文件程序當(dāng)中,并重啟Nginx服務(wù)器,以此實(shí)現(xiàn)自適應(yīng)功的資源動(dòng)態(tài)分配方法。
2.3 資源動(dòng)態(tài)分配方法的實(shí)踐分析
為了驗(yàn)證自適應(yīng)背景下服務(wù)化軟件系統(tǒng)資源動(dòng)態(tài)分配方法的有效性,以在線購(gòu)物系統(tǒng)為例進(jìn)行實(shí)踐。在購(gòu)物系統(tǒng)當(dāng)中,支持用戶完成“下訂單”操作的主要服務(wù)模塊有“體現(xiàn)購(gòu)物車內(nèi)容”、“加載購(gòu)物車詳情”、“生成新訂單”、“保存訂單信息”、“寫(xiě)入商品條目”以及“清空購(gòu)物車”六類。其中,后三者為并行結(jié)構(gòu),前三者與“寫(xiě)入商品條目”為串行結(jié)構(gòu)。
以此為基礎(chǔ)結(jié)合上文公式,對(duì)5min內(nèi)購(gòu)物系統(tǒng)“下訂單”服務(wù)組的CPU使用情況進(jìn)行采集,并將所得Li值與臨界值Lk進(jìn)行對(duì)比,根據(jù)公式求得購(gòu)物系統(tǒng)需要優(yōu)化的資源分配量。其后,再根據(jù)具體的分配量數(shù)值驅(qū)動(dòng)nginx.conf的調(diào)增,并實(shí)現(xiàn)購(gòu)物系統(tǒng)內(nèi)各服務(wù)器的文件廣播,最終經(jīng)由Nginx處完成系統(tǒng)資源的重新分配部署,并使軟件系統(tǒng)的網(wǎng)頁(yè)界面恢復(fù)到高性能、穩(wěn)定化的運(yùn)行狀態(tài)當(dāng)中。
基于購(gòu)物系統(tǒng)全天候、持續(xù)性的用戶服務(wù)狀態(tài),在設(shè)定系統(tǒng)自適應(yīng)周期的同時(shí),應(yīng)將資源動(dòng)態(tài)分配腳本的循環(huán)次數(shù)設(shè)為“永遠(yuǎn)”,并在單位時(shí)間內(nèi)進(jìn)行50人次以上的添加購(gòu)物車、瀏覽商品、訂單更新等模擬操作。最終,實(shí)踐得出30min內(nèi)的服務(wù)吞吐量明顯升高后趨于穩(wěn)定,即表明該資源動(dòng)態(tài)分配的優(yōu)化方法有效[2]。
3結(jié)束語(yǔ)
總而言之,服務(wù)化軟件系統(tǒng)是當(dāng)前軟件應(yīng)用的主流,做好此類系統(tǒng)的資源合理配置,對(duì)電子商務(wù)、搜索引擎服務(wù)等新興領(lǐng)域的發(fā)展具有重要意義。在服務(wù)化軟件系統(tǒng)運(yùn)行時(shí)資源動(dòng)態(tài)分配方法的設(shè)計(jì)實(shí)踐當(dāng)中,必須要秉持起合理分配、自主適應(yīng)的處理原則,從而發(fā)揮出資源的最大價(jià)值,提升軟件系統(tǒng)的服務(wù)質(zhì)量。
參考文獻(xiàn)
[1] 牛福強(qiáng). 動(dòng)態(tài)多目標(biāo)測(cè)試資源分配問(wèn)題研究[D].合肥:合肥工業(yè)大學(xué),2019.
[2] 陸陽(yáng),岳峰,張國(guó)富,等.串并行軟件系統(tǒng)測(cè)試資源動(dòng)態(tài)分配建模及求解[J].軟件學(xué)報(bào),2016,27(8):1964-1977.
作者簡(jiǎn)介
尹鑫(1987-),男,山西晉中人;畢業(yè)院校:中南大學(xué),學(xué)歷:研究生,工程師,現(xiàn)就職單位:北方自動(dòng)控制技術(shù)研究所,研究方向:指揮控制軟件。