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