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