尹鑫 王宏伟 纪淼淼
摘 要 本文首先对服务化软件系统运行时资源动态分配的主要表现进行了分析;其次,围绕功能特性、策略原理、实践分析三个方面,提出了自适应背景下服务化软件系统的运行时资源动态分配方法。
关键词 软件系统;资源配置;内部服务层
引言
自适应能力是保障软件系统安全、稳定运行的重要基础。对于服务化软件系统而言,这一能力的实现质量与内部服务层中各业务模块的动态资源分配水平密切相关。基于此,我们有必要对服务化软件系统的运行时资源动态分配方法进行讨论探析。
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-),男,山西晋中人;毕业院校:中南大学,学历:研究生,工程师,现就职单位:北方自动控制技术研究所,研究方向:指挥控制软件。