CN111274109A - 一种基于请求处理模拟的系统软硬件拓扑的评估算法及系统 - Google Patents
一种基于请求处理模拟的系统软硬件拓扑的评估算法及系统 Download PDFInfo
- Publication number
- CN111274109A CN111274109A CN202010064200.9A CN202010064200A CN111274109A CN 111274109 A CN111274109 A CN 111274109A CN 202010064200 A CN202010064200 A CN 202010064200A CN 111274109 A CN111274109 A CN 111274109A
- Authority
- CN
- China
- Prior art keywords
- request
- software
- hardware
- resource
- resources
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 52
- 238000011156 evaluation Methods 0.000 title claims abstract description 38
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 28
- 238000004088 simulation Methods 0.000 title claims abstract description 26
- 238000000034 method Methods 0.000 claims abstract description 35
- 230000008569 process Effects 0.000 claims abstract description 24
- 238000009826 distribution Methods 0.000 claims description 37
- 230000004044 response Effects 0.000 claims description 12
- 238000005070 sampling Methods 0.000 claims description 12
- 230000003068 static effect Effects 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000012423 maintenance Methods 0.000 claims description 3
- 239000004576 sand Substances 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000002330 electrospray ionisation mass spectrometry Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Probability & Statistics with Applications (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种基于请求处理模拟的系统软硬件拓扑的评估算法及系统。本发明公开了一种计算机系统的软硬件拓扑结构的评估算法及系统,涉及系统请求处理过程的模拟以及系统软硬件拓扑结构对请求处理的影响机制的建模,通过模拟系统处理请求的过程,统计并估计系统在采用某种软硬件拓扑结构时,其处理请求所表现出来的系统吞吐量上的各种指标。
Description
技术领域
本发明涉及计算机系统技术,具体涉及一种基于请求处理模拟的系统软硬件拓扑的评估算法及系统。
背景技术
如今的像数据中心这种大型的计算机系统,尽管为满足不断增长的请求处理需求做出了巨大贡献,但是其往往在网络利用率、故障恢复能力、增量可扩展性等方面远未达到其理想的性能。因此,也就涌现出不少新的数据中心网络拓扑架构,比如基于扩展器的数据中心拓扑(expander-based data center topology)和叶脊网络拓扑(leaf-spinetopology),以及与它们相关的网络拓扑优化方法。基于扩展器的数据中心拓扑有一个名为“扩展图”的无向图,使用该拓扑结构的数据中心可以被增量扩充到任意大小而且可以保证其高性能;而叶脊拓扑结构则通过在传统的三层网络结构上增加一层平行于主干纵向网络结构的横向网络结构,以在这层横向结构上增加相应的交换网络,实现传统三层网络结构无法实现的高扩展性和性能。
传统的用于评估一类网络拓扑结构的效果的方法,通常是基于一些基准测试程序,对系统的硬件资源的网络拓扑结构所能带来的性能进行评估。基准测试程序通过模拟(或真实的运行)各种运算任务和数据传输任务,对系统施加指定的测试压力,测试者就可通过观察系统在各种测试压力下的反映,来评估系统的各方面的性能,包括一类新的网络拓扑结构究竟能够给系统的性能带来怎样的提升。
传统的运行基准测试程序对网络拓扑结构进行效果评估的方法,由于需要真实地搭建出一个满足指定网络拓扑结构的计算机系统才能进行效果评估,需要耗费大量的资源和时间在真实系统的搭建上,这种时间和资源的高耗费,往往不利于网络拓扑结构的快速迭代。且由于通用的基准测试程序常常因更新缓慢和种类稀少而不能很好地模拟当下真实系统中所运行软件带来的压力分布,使用其测试得出高性能的系统,未必能够在部署真实的软件和接收真实的请求后仍可以达到测试中的高性能。这两个缺点,使得这种传统方法难以利用于现实运行的系统的拓扑结构更新所带来的效果评估。
发明内容
本发明的目:本发明意在解决传统的利用基准测试程序进行网络拓扑评估的方法在资源与时间上的高耗费,提出了一种计算机系统的软硬件拓扑结构的评估方法,涉及系统请求处理过程的模拟以及系统软硬件拓扑结构对请求处理的影响机制的建模,通过模拟系统处理请求的过程,统计并估计系统在采用某种软硬件拓扑结构时,其处理请求所表现出来的系统吞吐量上的各种指标。
技术方案:一种基于请求处理模拟的系统软硬件拓扑评估算法,通过模拟系统处理请求的过程,得到系统吞吐量指标;
根据系统吞吐量指标,得到系统当前采用的软硬件拓扑结构的评估结果。
进一步的,以请求分布信息、系统的硬件资源拓扑图、系统的软件资源图、软件部署信息和请求对应的软件资源调用概率信息为输入,以系统每秒处理请求数目、平均响应时间和请求并发数为输出;具体包括以下步骤:
步骤1:初始化变量;所述变量包括请求、available、processingList、waitingList、processedNumber、requestNumber、requestList、time、totalResponseTime;
available表示可用硬件资源向量;
processingList表示盛放所需硬件资源已分配完全的请求列表,初始值为空列表;
waitingList表示盛放所需硬件资源未分配完全的请求列表,初始值为空列表;
processedNumber表示当前系统已处理的请求数目,初始值为0;
requestNumber表示记录当前时间步所需申请的各类请求的数目,初始值为0;
requestList表示盛放当前时间步新生成的请求列表,初始值为空列表;
time表示系统运行时间,初始值为0;
totalResponseTime表示系统当前处理的所有请求的响应时间总和,初始值为0;
所述请求包括以下属性:req.startTime、req.softwareRscList和req.hardwareRscList;
req.startTime表示请求被系统接收的时间;
req.sofiwareRscList表示盛放该请求被处理时需要调用的软件资源列表;
req.hardwareRscList表示盛放该请求申请到的硬件资源列表;
步骤2:检查processingList中是否存在待处理的请求,若不存在待处理的请求,则执行步骤3;若存在待处理的请求,则判断请求中的req.hardwareRscList中是否存在占用到期的硬件资源,若存在占用到期的硬件资源,则释放该硬件资源至available上,并从processingList上删除req.hardwareRscList中所有硬件资源被释放的请求,执行步骤3;若不存在占用到期的硬件资源,则执行步骤3;
步骤3:processedNumber=processedNumber+1
totalResponseTime=totalResponseTime+(time-req.startTime);
步骤4:根据请求分布信息,随机取样生成本周期需处理的各种类别请求的数目:
步骤5:针对每种类别请求的数目,根据请求对应的软件资源调用概率信息和软件资源图,对应生成指定数目的新请求,并将新请求随机插入requestList中;
步骤6:判断waitingList中是否为空,若为空,则执行步骤7,否则,对waitinRList中的请求分配硬件资源,并将分配成功的请求放入processingList中,将分配不成功的请求继续留在waitingList中等待下次分配;
步骤7:对requestList中的新请求分配硬件资源,将分配成功的新请求从requestList中剔除并放入processingList,将分配不成功的请求从requestList中剔除并放入waitingList;
步骤8:维护循环步数和运行时间:n=n+1,time=time+stepSize,timeSize表示每个时间步的步长;若n<N,N为算法迭代次数,返回步骤2,否则表示达到循环次数,执行步骤9;
步骤9:统计得到每秒请求处理数目、平均响应时间和负载量:
concurrency=avarageResponseTime×transactionPerSecond。
进一步的,所述请求分布信息包括各种类别请求生成数目所服从正态分布的参数,所述参数包括请求每步生成数目的均值和请求每步生成数目的方差。
进一步的,所述软件资源调用概率信息为P=(p1,...,pm),其中,m为请求的类别数目,为第k类请求对应的软件资源调用概率向量,其中表示处理第k类请求时,软件资源图S中编号为i的软件资源被调用概率;h=|VS|+|ES|表示软件资源图S中软件资源的数目。
进一步的,所述软件资源图包括软件资源拓扑图和软件资源的硬件资源占用信息;所述软件资源拓扑图为由构成软件的组件和数据集作为顶点、由组件与组件、组件与数据集之间的数据连接作为边形成的无向图,记为S=<VS,ES>,其中VS为顶点集合,ES为边集合,通过对软件资源编号获取软件资源图S中的软件资源信息;
所述软件资源的硬件资源占用信息包括处于静止状态的硬件资源占用信息和处于运行状态的硬件资源占用信息;
所述处于静止状态的硬件资源占用信息记为:
所述处于运行状态的硬件资源占用信息记为:
其中,记编号为i的软件资源占用计算资源的数目为时长为占用内存资源的数目为时长为占用外存资源的数目为时长为占用带宽资源的数目为时长为服从二维正态分布,对K∈{C,M,E,N},为对应的二维正态分布的参数。
进一步的,所述硬件资源拓扑图为由内存资源、外存资源、运算资源、带宽资源这四类硬件资源作为顶点,以及这四类硬件资源之间的数据连接作为边形成的无向图,每个顶点都有一个用以表明它拥有的资源的量的属性值,该硬件资源拓扑图记为H=<VH,EH>,其中,VH表示顶点集合,EH表示边集合,通过对硬件资源拓扑图的顶点进行编号获取硬件资源图中的顶点硬件资源信息。
进一步的,所述软件部署信息D记为D=(d1,...,dh),其中为编号i的软件资源的部署信息,分别表示该软件资源所占用的运算、内存、外存、带宽资源在硬件资源拓扑图中的顶点编号,h=|VS|+|ES|为软件资源图中软件资源的数目。
进一步的,所述步骤5中针对每种类别请求的数目,根据请求对应的软件资源调用概率信息和软件资源图对应生成指定数目的新请求的步骤包括:
根据当前类别请求的数目对应的软件资源调用概率信息,从中随机取样生成当前类别请求的软件资源调用列表req.softwareRscList;一个所述软件资源调用列表req.sofiwareRscList对应一个新请求。
进一步的,所述步骤6和步骤7中的分配硬件资源的步骤为:
检查waitingList或requestList中的每一个请求,若存在其属性req.softwareRscList中存在编号i的软件资源的硬件资源未分配时,则根据S[i].runningOccupancy取样生成各种硬件资源的占用数量和时长,此时若available中相应硬件资源的资源数目足够分配,则将available中的硬件资源的占用数量和时长放入req.softwareRscList中,并从available中减去分配掉的资源数量,将当前请求从waitingList或requestList中删除放到prcessingList中;此时若available中相应硬件资源的资源数目不够分配,则将当前请求留在waitingList中等待下次分配或将该请求从requestList中剔除并放入waitingList。
本发明还公开了一种基于请求处理模拟的系统软硬件拓扑评估系统,包括:
输入模块,用于输入系统所需处理的请求分布信息、系统的硬件资源拓扑图、系统的软件资源图、软件部署信息和请求对应的软件资源调用概率信息;
评估模块,内置基于请求处理模拟的系统软硬件拓扑评估算法,用于根据输入模块的输入信息模拟系统处理请求的过程,得到系统吞吐量指标;
输出模块,用于输出系统吞吐量指标和系统当前采用的软硬件拓扑结构的评估结果。
有益效果:本发明与现有技术相比,本发明通过对系统的软硬件拓扑和所处理的请求服从的分布进行合理地建模,本方法可在不搭建真实的系统的情况下,对一种采用特定硬件资源拓扑和软件资源拓扑的计算机系统在请求处理上的性能进行模拟评估,可以减少系统的网络拓扑结构的评估的资源和时间的消耗,同时提高测试用软件与真实软件在硬件资源负载压力上的相似程度,进而提高评估结果的可信度。
附图说明
图1为本发明的流程示意图;
图2为步骤2中释放请求的到期硬件资源的流程示意图;
图3为步骤4生成新请求的流程示意图;
图4为步骤5为等待中请求分配硬件资源的流程示意图;
图5为模拟请求占用硬件资源的逻辑思维示意图。
具体实施方式
现结合实施例进一步阐述本发明的技术方案。
实施例1:
本实施例的基本思想:参见图5,模拟请求占用硬件资源的逻辑:首先确定请求需要哪些组件(软件资源)来处理它,然后确定每个组件各需要多少硬件资源,最后根据它们的硬件资源需求为它们分配硬件资源,可参见图5;一个请求会占用哪些硬件的资源,与系统的硬件资源拓扑和软件资源拓扑有关。而占用的量和时长,则是通过两个随机取样过程生成的:为请求随机选取它会调用的组件和为每个被调用的组件随机选定它们运行时需要的各种硬件资源。本发明通过模拟的方式降低评估所需的资源和时间,同时通过合理地对系统的软硬件拓扑进行建模,实现可以对现实的软件系统处理请求的过程进行模拟,降低测试所使用的软件系统与现实使用的软件系统的差别对评估结果的影响。
本实施例的模拟方法,需要考虑5个因素对系统吞吐量的影响:它们分别是:系统所需处理的请求分布、系统的硬件资源拓扑、系统的软件资源拓扑、系统的软件部署,以及请求对应的软件资源调用概率。
一.系统所需处理的请求分布
模拟过程中的请求序列是一步一步随机产生的。将具体请求记做Req,请求类别记做ReqT,设有m类不同的请求,各种请求之间的生成大多数情况是相互独立的,且一种请求的当前生成数目与其过去生成数目的历史无关,因此,可以认为第k类请求(k∈{1,...,n})在每一步的发起数目nk服从一个正态分布:
nk~N(uk,σk)
其中,uk是每步生成数目的均值,通过调整uk,可以调整系统该类请求的需负载的平均强度,均值越高,负载越大;而σk则是每步生成数目的方差,通过调整σk可调整请求发生的不稳定程度,当方差越大,不同步之间生成的请求数目的波动就越厉害。
请求分布信息记做R,它是记录各类请求生成数目所服从分布的参数。R[i]为编号i的请求类别。
二.系统硬件资源拓扑
系统中所使用的硬件系统可被抽象为硬件资源拓扑。硬件资源拓扑是由内存资源、外存资源、运算资源、带宽资源这四类硬件资源作为顶点,以及它们之间的数据连接作为边形成的无向图,且无向图中每个顶点都有一个属性值用以表明它拥有的资源的量。硬件拓扑记为H=<VH,EH>其中VH表示顶点集合,EH表示边集合,可通过编号获取硬件资源拓扑中的顶点,如H[i]表示编号为i的硬件资源,其有属性H[i].capacity表示该硬件资源的资源数量。
三.系统软件资源图
系统中使用的软件系统可被抽象为软件资源图。软件系统对应的软件资源图由两个部分构成,一个是软件资源拓扑图,一个是软件资源的硬件资源占用信息。
软件资源指的是构成软件的组件、数据集和它们之间的数据连接。软件资源拓扑图是由组件和数据集作为顶点,由组件与组件、组件与数据集之间的数据连接作为边形成的无向图。
软件资源的硬件资源占用信息表达的是软件资源和硬件资源之间的关系。软件资源拓扑图中的每个顶点(代表组件或数据集)和边(代表数据连接)在它们部署或运行于硬件之上时,会占用硬件资源,因此每个组件、数据集和数据连接都有它的硬件资源占用信息。所有软件资源的硬件资源占用信息均可分成两个部分。因为软件资源有运行与静止两个状态,需要分别描述它们在两种状态下的硬件资源占用情况。当软件资源处于静止状态,组件会占用固定量的内存以及外存资源,而数据集则只占用固定量的外存。对每个组件的静态资源占用,使用两个参数指明,而对数据集的静态资源占用,只使用一个参数即可指明。数据连接静止状态不占用任何硬件资源。当软件资源处于运行状态时,它不仅会因为部署而占用上面的固定量的内存、外存资源,还会因为处理请求而需要动态地增加对各种硬件资源的占用。每个组件、数据集和数据连接被使用时,需增加占用硬件资源的数量不同而且具备一定的随机性。这里忽略它们运行过程中对资源的频繁占用与释放的动态过程,将它们被调用时对一种资源的占用简化为两个随机变量:占用资源数目和占用时长。这些随机变量可以认为其服从正态分布。记编号为i的软件资源占用计算资源的数目为时长为占用内存资源的数目为时长为占用外存资源的数目为时长为占用带宽资源的数目为时长为它们分别服从以下二维正态分布:
其中,对K∈{C,M,E,N},为对应的二维正态分布的参数。对一个软件系统的软件资源图中的每个组件、数据集和数据连接,都要指明其占用这四种硬件资源的数量和时长所服从的概率分布的参数,用于表示该软件系统的运行方式。
软件资源图记为S=<VS,ES〉,其中VS为顶点(代表组件和数据集)集合,ES为边(代表数据连接)集合。可通过软件资源的编号获取图中的软件资源信息,如S[i]就表示编号为i的软件资源,它有属性S[i].isVertex表示它是否为顶点,有表示其静止状态的硬件资源占用信息,其中分别表示该软件资源静止状态占用的计算、内存、外存、带宽资源的量;它还有表示其运行状态的硬件资源占用信息的属性:
四.软件部署
软件部署,就是将组件、数据集和数据连接关联到其所安置的硬件资源上。就是在软件资源图中,指定每个组件占用的硬件资源图中的计算、内存、外存顶点,指定数据集占用的外存顶点,以及指定数据连接占用的带宽顶点。在系统使用这些软件资源处理请求时,就根据软件部署信息确定应当占用哪些硬件的资源。
软件部署信息记做D=(d1,...,dh),其中为编号i的软件资源的部署信息,分别表示该软件资源所占用的计算、内存、外存、带宽资源在硬件资源图中的顶点编号,h=|VS|+|ES|,即软件资源图中软件资源的数目。
五.请求对应的软件资源调用概率
系统在处理一类请求时,会以特定的概率调用软件资源拓扑图中的组件、数据集和数据连接。处理不同类别的请求,系统对软件资源拓扑图中的每个软件资源的调用概率通常是不同的。
请求对应的软件资源调用概率信息记做P=(p1,...,pm),其中m为请求的类别数目。为第k类请求对应的软件资源调用概率向量,其中表示处理第k类请求时,软件资源图中编号为i的软件资源的被调用概率;h=|VS|+|ES|,即软件资源图中软件资源的数目。
系统吞吐量的度量使用三个指标来进行:每秒处理请求数目(TransactionPerSecond,Transaction也就是这里的请求)、平均响应时间(AverageResponseTime)和请求并发数(Concurrency)。每秒处理请求数目即系统当前处理请求总数除以系统运行时间;平均响应时间指的是当前处理完的所有请求从发起到收到结果返回这段响应时间的平均值;而请求并发数则指的是系统同一时间处理的请求的数目。它们之间的关系为:
算法输入:
R:请求的分布信息,其结构如在请求分布部分已介绍。
H:系统的硬件资源拓扑图,其结构在硬件资源拓扑部分已介绍。
S:系统的软件资源图,其结构在软件资源图中已介绍。
D:软件部署信息,其结构在软件部署中已介绍。
P:请求对应的软件资源调用概率信息,其结构在请求对应的软件资源调用概率部分已介绍。
timeSize:算法迭代的每个时间步的步长。单位为秒。
N:算法迭代次数。
算法中使用的辅助变量:
req:请求,它有以下属性:req.startTime为请求被系统接收(生成)的时间,req.soffwareRscList为盛放该请求被处理时需要调用的软件资源的列表,即需要调用的组件、数据集和数据连接;req.hardwareRscList为盛放该请求申请到的硬件资源的列表。
可用硬件资源向量,其中ai表示第i个硬件资源的可用量,为0时则表示该硬件资源被分配耗尽;|VH|为硬件资源拓扑中顶点集的大小,也就是硬件资源拓扑中,硬件资源顶点的数目。available的各个分量available[i]的初始值为H[i].capacity减去所有部署在该硬件资源上的软件资源的静态资源占用量。
processingList:盛放所需硬件资源已分配完全的请求。初始值为空列表。
waitingList:盛放所需硬件资源未分配完全的请求。初始值为空列表。
processedNumber:当前系统已处理的请求数目。初始值为0。
requestNumber=(r1,...,rm):记录当前时间步所需申请的各类请求的数目,ri(或requestNumber[i])为第i类请求的生成数目,m为请求种类。初始值为(0,...,0)。
requestList:盛放当前时间步新生成的请求的列表。其拥有的请求的总数目为r1+…+rm,即所有类别请求生成数目的总和。初始值为空列表。
time:系统运行时间,以秒为单位。初始值为0。
totalResponseTime:系统当前处理的所有请求的响应时间的总和。初始值为0。
算法输出:
averageResponseTime:当前系统处理请求的平均响应时间。
transactionPerSecond:系统每秒处理的请求数目。
concurrency:系统的并发数。
参见图1,本发明的算法执行步骤:
Step1:初始化辅助变量(各变量初始化的值在辅助变量介绍中已说明)。
Step2:检查processingList中是否存在req在被处理,若存在,则先释放所有req中的req.hardwareRscList中占用到期的硬件资源依次释放至available上,再从processingList中删除req.hardwareRscList中所有硬件资源均已释放的req,置:
processedNumber=processedNumber+1,
totalResponseTime=totalResponseTime+(time-req.startTime);
否则,执行Step3;具体可参见图2;
Step3:根据请求分布信息R,随机取样生成本周期需处理的各类请求数目:requestNumber=sample(R)。
Step4:根据各类请求数目,判断所有类别请求是否均已生成,若已生成,则执行Step5,否则,判断当前类别请求是否达到数目,若达到,则获取下一类请求数目,否则,依据该类别请求数目对应的软件资源调用概率信息,随机取样生成该类别请求的软件资源调用列表,即为生成一个新请求,将软件资源调用列表随机插入requestList:requestList=generateRequest(requestNumber,P,time),重复上述过程,直至当前类别请求达到数目;具体流程可参见图3;
Step5:判断等待队列waitingList是否为空,若为空,则执行Step6,否则,取waitingList中的一个请求,并判断当前请求是否有软件资源未分配到硬件资源,若有,则取该请求未获得硬件资源的软件资源并为其分配硬件资源,若分配成功,则继续判断当前请求是否有软件资源未分配到硬件资源,直至当前请求所有软件资源均分配到硬件资源,而后将当前请求放入processingList中,并继续判断waitingList是否为空,若分配失败,则重新判断waitingList是否为空;
waitingList,processingList=
allocateHardwareRsc(waitingList,S,D,available)
具体流程可参见图4;
Step6:给新生成的请求分配硬件资源,若分配完毕,将请求放入processingList,若分配不完全,则放入等待队列waitingList;
wattingList,processingList=
allocateHardwareRsc(requestList,,S,D,available)
Step7:维护循环步数和运行时间:n=n+1,time=time+stepSize。如果n<N,返回Step2,否则表示达到循环次数,继续Step8。
Step8:统计每秒请求处理数目、平均响应时间和负载量:
concurrency=avarageResponseTime×transactionPerSecond;
Step9:返回avarageResponseTime,transactionPerSecond,concurrency。
算法中函数调用解释:
sample(R):sample为取样函数,根据参数R中给定的概率分布参数,对请求数目进行正态分布取样,返回请求数目数组。
generateRequest(requestNumber,P,time):该函数负责依照requestNumber中规定的各类请求的生成数目,根据P给定的各类请求的软件资源调用概率信息,生成相应数目的请求:req1,...,reql,l=requestNumber(1)+…+requestNumber(m),其中,对所有的i∈{1,...,l},有reqi.startTime=time;设reqi所属请求类别为k,则reqi.softwareRscList为根据取样得到的软件资源列表。将生成的所有请求打乱顺序后返回。
allocateHardwareRsc(requestList,,S,D,available):该函数负责依照软件资源图S和软件部署D给定的信息,以及available中可用的硬件资源量,给requestList中的所有请求分配硬件资源。对requestList中的每一个req,如果其req.softwareRscList中存在编号为i(i∈{1,...,|VS|+|ES|})的软件资源的硬件资源未分配,则根据S[i].runningOccupancy给定的各种硬件资源的占用数目和时长所服从正态分布的参数,取样生成各种硬件资源的占用数量和时长,此时如果available中相应硬件资源的资源数目足够分配,则将这些硬件资源的占用数量和时长放到req.softwareRscList中,并从available中减去分配掉的资源数量,将req从requestList中删除,并放到prcessingList中。
allocateHardwareRsc(waitingList,S,D,available):与上面的调用类似,只是参数requestList换成了waitinqList。
实施例2:
本实施例在实施例的基础上,提出了一种系统软硬件拓扑评估系统,包括
输入模块,用于输入系统所需处理的请求分布信息、系统的硬件资源拓扑图、系统的软件资源图、软件部署信息和请求对应的软件资源调用概率信息;
评估模块,内置实施例1所述的一种基于请求处理模拟的系统软硬件拓扑评估算法,用于根据输入模块的输入信息模拟系统处理请求的过程,得到系统吞吐量指标;
输出模块,用于输出系统吞吐量指标和系统当前采用的软硬件拓扑结构的评估结果。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (10)
1.一种基于请求处理模拟的系统软硬件拓扑评估算法,其特征在于:包括以下步骤:
通过模拟系统处理请求的过程,得到系统吞吐量指标;
根据系统吞吐量指标,得到系统当前采用的软硬件拓扑结构的评估结果。
2.根据权利要求1所述的一种基于请求处理模拟的系统软硬件拓扑评估算法,其特征在于:所述通过模拟系统处理请求的过程,得到系统吞吐量指标的步骤为:
以请求分布信息、系统的硬件资源拓扑图、系统的软件资源图、软件部署信息和请求对应的软件资源调用概率信息为输入,以系统每秒处理请求数目、平均响应时间和请求并发数为输出;具体包括以下步骤:
步骤1:初始化变量;所述变量包括请求、available、processingList、waitingList、processedNumber、requestNumber、requestList、time、totalResponseTime;
available表示可用硬件资源向量;
processingList表示盛放所需硬件资源已分配完全的请求列表,初始值为空列表;
waitingList表示盛放所需硬件资源未分配完全的请求列表,初始值为空列表;
processedNumber表示当前系统已处理的请求数目,初始值为0;
requestNumber表示记录当前时间步所需申请的各类请求的数目,初始值为0;
requestList表示盛放当前时间步新生成的请求列表,初始值为空列表;
time表示系统运行时间,初始值为0;
totalResponseTime表示系统当前处理的所有请求的响应时间总和,初始值为0;
所述请求包括以下属性:req.startTime、req.softwareRscList和req.hardwareRscList;
req.startTime表示请求被系统接收的时间;
req.softwareRscList表示盛放该请求被处理时需要调用的软件资源列表;
req.hardwareRscList表示盛放该请求申请到的硬件资源列表;
步骤2:检查processingList中是否存在待处理的请求,若不存在待处理的请求,则执行步骤3;若存在待处理的请求,则判断请求中的req.hardwareRscList中是否存在占用到期的硬件资源,若存在占用到期的硬件资源,则释放该硬件资源至available上,并从processingList上删除req.hardwareRscList中所有硬件资源被释放的请求,执行步骤3;若不存在占用到期的硬件资源,则执行步骤3;
步骤3:processedNumber=processedNumber+1
totalResponseTime=totalResponseTime+(time-req.startTime);
步骤4:根据请求分布信息,随机取样生成本周期需处理的各种类别请求的数目:
步骤5:针对每种类别请求的数目,根据请求对应的软件资源调用概率信息和软件资源图,对应生成指定数目的新请求,并将新请求随机插入requestList中;
步骤6:判断waitingList中是否为空,若为空,则执行步骤7,否则,对waitingList中的请求分配硬件资源,并将分配成功的请求放入processingList中,将分配不成功的请求继续留在waitingList中等待下次分配;
步骤7:对requestList中的新请求分配硬件资源,将分配成功的新请求从requestList中剔除并放入processingList,将分配不成功的请求从requestList中剔除并放入waitingList;
步骤8:维护循环步数和运行时间:n=n+1,time=time+stepSize,timeSize表示每个时间步的步长;若n<N,N为算法迭代次数,返回步骤2,否则表示达到循环次数,执行步骤9;
步骤9:统计得到每秒请求处理数目、平均响应时间和负载量:
comcurrency=avarageResponseTime×transactionPerSecond。
3.根据权利要求2所述的一种基于请求处理模拟的系统软硬件拓扑评估算法,其特征在于:所述请求分布信息包括各种类别请求生成数目所服从正态分布的参数,所述参数包括请求每步生成数目的均值和请求每步生成数目的方差。
5.根据权利要求2所述的一种基于请求处理模拟的系统软硬件拓扑评估算法,其特征在于:所述软件资源图包括软件资源拓扑图和软件资源的硬件资源占用信息;所述软件资源拓扑图为由构成软件的组件和数据集作为顶点、由组件与组件、组件与数据集之间的数据连接作为边形成的无向图,记为S=<VS,ES>,其中VS为顶点集合,ES为边集合,通过对软件资源编号获取软件资源图S中的软件资源信息;
所述软件资源的硬件资源占用信息包括处于静止状态的硬件资源占用信息和处于运行状态的硬件资源占用信息;
所述处于静止状态的硬件资源占用信息记为:
所述处于运行状态的硬件资源占用信息记为:
6.根据权利要求2所述的一种基于请求处理模拟的系统软硬件拓扑评估算法,其特征在于:所述硬件资源拓扑图为由内存资源、外存资源、运算资源、带宽资源这四类硬件资源作为顶点,以及这四类硬件资源之间的数据连接作为边形成的无向图,每个顶点都有一个用以表明它拥有的资源的量的属性值,该硬件资源拓扑图记为H=<VH,EH>,其中,VH表示顶点集合,EH表示边集合,通过对硬件资源拓扑图的顶点进行编号获取硬件资源图中的顶点硬件资源信息。
8.根据权利要求2所述的一种基于请求处理模拟的系统软硬件拓扑评估算法,其特征在于:所述步骤5中针对每种类别请求的数目,根据请求对应的软件资源调用概率信息和软件资源图对应生成指定数目的新请求的步骤包括:
根据当前类别请求的数目对应的软件资源调用概率信息,从中随机取样生成当前类别请求的软件资源调用列表req.softwareRscList;一个所述软件资源调用列表req.softwareRscList对应一个新请求。
9.根据权利要求5所述的一种基于请求处理模拟的系统软硬件拓扑评估算法,其特征在于:所述步骤6和步骤7中的分配硬件资源的步骤为:
检查waitingList或requestList中的每一个请求,若存在其属性req.softwareRscList中存在编号i的软件资源的硬件资源未分配时,则根据S[i].runningOccupancy取样生成各种硬件资源的占用数量和时长,此时若available中相应硬件资源的资源数目足够分配,则将available中的硬件资源的占用数量和时长放入req.softwareRscList中,并从available中减去分配掉的资源数量,将当前请求从waitingList或requestList中删除放到prcessingList中;此时若available中相应硬件资源的资源数目不够分配,则将当前请求留在waitingList中等待下次分配或将该请求从requestList中剔除并放入waitingList。
10.基于权利要求1至9任意一项所述的一种基于请求处理模拟的系统软硬件拓扑评估算法的系统软硬件拓扑评估系统,其特征在于:包括
输入模块,用于输入系统所需处理的请求分布信息、系统的硬件资源拓扑图、系统的软件资源图、软件部署信息和请求对应的软件资源调用概率信息;
评估模块,内置权利要求1至9任意一项所述的一种基于请求处理模拟的系统软硬件拓扑评估算法,用于根据输入模块的输入信息模拟系统处理请求的过程,得到系统吞吐量指标;
输出模块,用于输出系统吞吐量指标和系统当前采用的软硬件拓扑结构的评估结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010064200.9A CN111274109B (zh) | 2020-01-20 | 2020-01-20 | 一种基于请求处理模拟的系统软硬件拓扑的评估方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010064200.9A CN111274109B (zh) | 2020-01-20 | 2020-01-20 | 一种基于请求处理模拟的系统软硬件拓扑的评估方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111274109A true CN111274109A (zh) | 2020-06-12 |
CN111274109B CN111274109B (zh) | 2023-06-02 |
Family
ID=71001770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010064200.9A Active CN111274109B (zh) | 2020-01-20 | 2020-01-20 | 一种基于请求处理模拟的系统软硬件拓扑的评估方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111274109B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030139918A1 (en) * | 2000-06-06 | 2003-07-24 | Microsoft Corporation | Evaluating hardware models having resource contention |
CN1842032A (zh) * | 2005-04-02 | 2006-10-04 | 华为技术有限公司 | 评估系统处理能力的仿真方法 |
CN101482891A (zh) * | 2008-01-08 | 2009-07-15 | 富士通株式会社 | 性能评估模拟 |
CN105260786A (zh) * | 2015-09-08 | 2016-01-20 | 哈尔滨工程大学 | 一种电力推进系统仿真可信度评估模型综合优化方法 |
CN108683564A (zh) * | 2018-05-21 | 2018-10-19 | 中国科学院信息工程研究所 | 一种基于多维决策属性的网络仿真系统可信度评估方法 |
CN109150627A (zh) * | 2018-10-09 | 2019-01-04 | 南京邮电大学 | 基于动态资源需求及拓扑感知的虚拟网络映射的构建方法 |
CN109472075A (zh) * | 2018-10-30 | 2019-03-15 | 成都四方伟业软件股份有限公司 | 一种基站性能分析方法及系统 |
CN110633194A (zh) * | 2019-09-26 | 2019-12-31 | 中国民用航空总局第二研究所 | 一种硬件资源在特定环境下的性能评估方法 |
-
2020
- 2020-01-20 CN CN202010064200.9A patent/CN111274109B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030139918A1 (en) * | 2000-06-06 | 2003-07-24 | Microsoft Corporation | Evaluating hardware models having resource contention |
CN1842032A (zh) * | 2005-04-02 | 2006-10-04 | 华为技术有限公司 | 评估系统处理能力的仿真方法 |
CN101482891A (zh) * | 2008-01-08 | 2009-07-15 | 富士通株式会社 | 性能评估模拟 |
CN105260786A (zh) * | 2015-09-08 | 2016-01-20 | 哈尔滨工程大学 | 一种电力推进系统仿真可信度评估模型综合优化方法 |
CN108683564A (zh) * | 2018-05-21 | 2018-10-19 | 中国科学院信息工程研究所 | 一种基于多维决策属性的网络仿真系统可信度评估方法 |
CN109150627A (zh) * | 2018-10-09 | 2019-01-04 | 南京邮电大学 | 基于动态资源需求及拓扑感知的虚拟网络映射的构建方法 |
CN109472075A (zh) * | 2018-10-30 | 2019-03-15 | 成都四方伟业软件股份有限公司 | 一种基站性能分析方法及系统 |
CN110633194A (zh) * | 2019-09-26 | 2019-12-31 | 中国民用航空总局第二研究所 | 一种硬件资源在特定环境下的性能评估方法 |
Non-Patent Citations (1)
Title |
---|
雷擎等: "计算机网络模拟应用于网络拓扑设计", 《计算机应用研究》 * |
Also Published As
Publication number | Publication date |
---|---|
CN111274109B (zh) | 2023-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022037337A1 (zh) | 机器学习模型的分布式训练方法、装置以及计算机设备 | |
CN110515739B (zh) | 深度学习神经网络模型负载计算方法、装置、设备及介质 | |
AU2019284002B2 (en) | Data processing method and related products | |
US11847554B2 (en) | Data processing method and related products | |
CN111258744A (zh) | 一种基于异构计算的任务处理方法及软硬件框架系统 | |
CN103092751B (zh) | 一种云环境下基于用户行为模型的web应用性能测试系统 | |
CN114741207B (zh) | 一种基于多维度组合并行的gpu资源调度方法和系统 | |
US20210191759A1 (en) | Elastic Execution of Machine Learning Workloads Using Application Based Profiling | |
CN111522640A (zh) | 计算图的并行执行方法和设备 | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
CN108205469B (zh) | 一种基于MapReduce的资源分配方法及服务器 | |
US8681166B1 (en) | System and method for efficient resource management of a signal flow programmed digital signal processor code | |
CN112764893B (zh) | 数据处理方法和数据处理系统 | |
US8768680B2 (en) | Simulator of multi-core system employing reconfigurable processor cores and method of simulating multi-core system employing reconfigurable processor cores | |
CN109213587B (zh) | GPU平台下的多Stream并行DAG图任务映射策略 | |
CN109657794B (zh) | 一种基于指令队列的分布式深度神经网络性能建模方法 | |
CN108984298A (zh) | 一种云计算平台的资源调度方法和系统 | |
CN113407343A (zh) | 一种基于资源分配的业务处理方法、装置及设备 | |
CN111274109A (zh) | 一种基于请求处理模拟的系统软硬件拓扑的评估算法及系统 | |
Sen et al. | Predictive price-performance optimization for serverless query processing | |
WO2023071566A1 (zh) | 数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品 | |
CN107493205B (zh) | 一种设备集群扩容性能预测方法及装置 | |
CN117093538A (zh) | 稀疏Cholesky分解硬件加速系统及其求解方法 | |
US11809849B1 (en) | Global modulo allocation in neural network compilation | |
CN112346861A (zh) | 资源分配方法、装置、设备和超融合系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |