CN111274109A - 一种基于请求处理模拟的***软硬件拓扑的评估算法及*** - Google Patents

一种基于请求处理模拟的***软硬件拓扑的评估算法及*** Download PDF

Info

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
Application number
CN202010064200.9A
Other languages
English (en)
Other versions
CN111274109B (zh
Inventor
储诚贵
董清泉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Information and Telecommunication Co Ltd
Global Energy Interconnection Research Institute
NARI Group Corp
Information and Telecommunication Branch of State Grid Gansu Electric Power Co Ltd
Original Assignee
State Grid Information and Telecommunication Co Ltd
Global Energy Interconnection Research Institute
NARI Group Corp
Information and Telecommunication Branch of State Grid Gansu Electric Power Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by State Grid Information and Telecommunication Co Ltd, Global Energy Interconnection Research Institute, NARI Group Corp, Information and Telecommunication Branch of State Grid Gansu Electric Power Co Ltd filed Critical State Grid Information and Telecommunication Co Ltd
Priority to CN202010064200.9A priority Critical patent/CN111274109B/zh
Publication of CN111274109A publication Critical patent/CN111274109A/zh
Application granted granted Critical
Publication of CN111274109B publication Critical patent/CN111274109B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3457Performance evaluation by simulation
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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:统计得到每秒请求处理数目、平均响应时间和负载量:
Figure BDA0002375455450000031
Figure BDA0002375455450000032
concurrency=avarageResponseTime×transactionPerSecond。
进一步的,所述请求分布信息包括各种类别请求生成数目所服从正态分布的参数,所述参数包括请求每步生成数目的均值和请求每步生成数目的方差。
进一步的,所述软件资源调用概率信息为P=(p1,...,pm),其中,m为请求的类别数目,
Figure BDA0002375455450000033
为第k类请求对应的软件资源调用概率向量,其中
Figure BDA0002375455450000034
表示处理第k类请求时,软件资源图S中编号为i的软件资源被调用概率;h=|VS|+|ES|表示软件资源图S中软件资源的数目。
进一步的,所述软件资源图包括软件资源拓扑图和软件资源的硬件资源占用信息;所述软件资源拓扑图为由构成软件的组件和数据集作为顶点、由组件与组件、组件与数据集之间的数据连接作为边形成的无向图,记为S=<VS,ES>,其中VS为顶点集合,ES为边集合,通过对软件资源编号获取软件资源图S中的软件资源信息;
所述软件资源的硬件资源占用信息包括处于静止状态的硬件资源占用信息和处于运行状态的硬件资源占用信息;
所述处于静止状态的硬件资源占用信息记为:
Figure BDA0002375455450000035
其中,
Figure BDA0002375455450000036
分别表示编号为i的软件资源处于静止状态占用的计算、内存、外存、带宽资源的量;
所述处于运行状态的硬件资源占用信息记为:
Figure BDA0002375455450000037
Figure BDA0002375455450000041
其中,记编号为i的软件资源占用计算资源的数目为
Figure BDA0002375455450000042
时长为
Figure BDA0002375455450000043
占用内存资源的数目为
Figure BDA0002375455450000044
时长为
Figure BDA0002375455450000045
占用外存资源的数目为
Figure BDA0002375455450000046
时长为
Figure BDA0002375455450000047
占用带宽资源的数目为
Figure BDA0002375455450000048
时长为
Figure BDA0002375455450000049
服从二维正态分布,对K∈{C,M,E,N},
Figure BDA00023754554500000410
为对应的二维正态分布的参数。
进一步的,所述硬件资源拓扑图为由内存资源、外存资源、运算资源、带宽资源这四类硬件资源作为顶点,以及这四类硬件资源之间的数据连接作为边形成的无向图,每个顶点都有一个用以表明它拥有的资源的量的属性值,该硬件资源拓扑图记为H=<VH,EH>,其中,VH表示顶点集合,EH表示边集合,通过对硬件资源拓扑图的顶点进行编号获取硬件资源图中的顶点硬件资源信息。
进一步的,所述软件部署信息D记为D=(d1,...,dh),其中
Figure BDA00023754554500000411
为编号i的软件资源的部署信息,
Figure BDA00023754554500000412
分别表示该软件资源所占用的运算、内存、外存、带宽资源在硬件资源拓扑图中的顶点编号,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的软件资源占用计算资源的数目为
Figure BDA0002375455450000061
时长为
Figure BDA0002375455450000062
占用内存资源的数目为
Figure BDA0002375455450000063
时长为
Figure BDA0002375455450000064
占用外存资源的数目为
Figure BDA0002375455450000071
时长为
Figure BDA0002375455450000072
占用带宽资源的数目为
Figure BDA0002375455450000073
时长为
Figure BDA0002375455450000074
它们分别服从以下二维正态分布:
Figure BDA0002375455450000075
Figure BDA0002375455450000076
Figure BDA0002375455450000077
Figure BDA0002375455450000078
其中,对K∈{C,M,E,N},
Figure BDA0002375455450000079
为对应的二维正态分布的参数。对一个软件***的软件资源图中的每个组件、数据集和数据连接,都要指明其占用这四种硬件资源的数量和时长所服从的概率分布的参数,用于表示该软件***的运行方式。
软件资源图记为S=<VS,ES〉,其中VS为顶点(代表组件和数据集)集合,ES为边(代表数据连接)集合。可通过软件资源的编号获取图中的软件资源信息,如S[i]就表示编号为i的软件资源,它有属性S[i].isVertex表示它是否为顶点,有
Figure BDA00023754554500000710
表示其静止状态的硬件资源占用信息,其中
Figure BDA00023754554500000711
分别表示该软件资源静止状态占用的计算、内存、外存、带宽资源的量;它还有表示其运行状态的硬件资源占用信息的属性:
Figure BDA00023754554500000712
其中,对K∈{C,M,E,N},
Figure BDA00023754554500000713
为前面提到的多个二维正态分布的参数。
四.软件部署
软件部署,就是将组件、数据集和数据连接关联到其所安置的硬件资源上。就是在软件资源图中,指定每个组件占用的硬件资源图中的计算、内存、外存顶点,指定数据集占用的外存顶点,以及指定数据连接占用的带宽顶点。在***使用这些软件资源处理请求时,就根据软件部署信息确定应当占用哪些硬件的资源。
软件部署信息记做D=(d1,...,dh),其中
Figure BDA00023754554500000714
为编号i的软件资源的部署信息,
Figure BDA00023754554500000715
分别表示该软件资源所占用的计算、内存、外存、带宽资源在硬件资源图中的顶点编号,h=|VS|+|ES|,即软件资源图中软件资源的数目。
五.请求对应的软件资源调用概率
***在处理一类请求时,会以特定的概率调用软件资源拓扑图中的组件、数据集和数据连接。处理不同类别的请求,***对软件资源拓扑图中的每个软件资源的调用概率通常是不同的。
请求对应的软件资源调用概率信息记做P=(p1,...,pm),其中m为请求的类别数目。
Figure BDA0002375455450000081
为第k类请求对应的软件资源调用概率向量,其中
Figure BDA0002375455450000082
表示处理第k类请求时,软件资源图中编号为i的软件资源的被调用概率;h=|VS|+|ES|,即软件资源图中软件资源的数目。
***吞吐量的度量使用三个指标来进行:每秒处理请求数目(TransactionPerSecond,Transaction也就是这里的请求)、平均响应时间(AverageResponseTime)和请求并发数(Concurrency)。每秒处理请求数目即***当前处理请求总数除以***运行时间;平均响应时间指的是当前处理完的所有请求从发起到收到结果返回这段响应时间的平均值;而请求并发数则指的是***同一时间处理的请求的数目。它们之间的关系为:
Figure BDA0002375455450000083
算法输入:
R:请求的分布信息,其结构如在请求分布部分已介绍。
H:***的硬件资源拓扑图,其结构在硬件资源拓扑部分已介绍。
S:***的软件资源图,其结构在软件资源图中已介绍。
D:软件部署信息,其结构在软件部署中已介绍。
P:请求对应的软件资源调用概率信息,其结构在请求对应的软件资源调用概率部分已介绍。
timeSize:算法迭代的每个时间步的步长。单位为秒。
N:算法迭代次数。
算法中使用的辅助变量:
req:请求,它有以下属性:req.startTime为请求被***接收(生成)的时间,req.soffwareRscList为盛放该请求被处理时需要调用的软件资源的列表,即需要调用的组件、数据集和数据连接;req.hardwareRscList为盛放该请求申请到的硬件资源的列表。
Figure BDA0002375455450000084
可用硬件资源向量,其中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:统计每秒请求处理数目、平均响应时间和负载量:
Figure BDA0002375455450000101
Figure BDA0002375455450000102
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为根据
Figure BDA0002375455450000103
取样得到的软件资源列表。将生成的所有请求打乱顺序后返回。
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:统计得到每秒请求处理数目、平均响应时间和负载量:
Figure FDA0002375455440000021
Figure FDA0002375455440000022
comcurrency=avarageResponseTime×transactionPerSecond。
3.根据权利要求2所述的一种基于请求处理模拟的***软硬件拓扑评估算法,其特征在于:所述请求分布信息包括各种类别请求生成数目所服从正态分布的参数,所述参数包括请求每步生成数目的均值和请求每步生成数目的方差。
4.根据权利要求2所述的一种基于请求处理模拟的***软硬件拓扑评估算法,其特征在于:所述软件资源调用概率信息为P=(p1,...,pm),其中,m为请求的类别数目,
Figure FDA0002375455440000023
为第k类请求对应的软件资源调用概率向量,其中
Figure FDA0002375455440000024
表示处理第k类请求时,软件资源图S中编号为i的软件资源被调用概率;j=|VS|+|ES|表示软件资源图S中软件资源的数目。
5.根据权利要求2所述的一种基于请求处理模拟的***软硬件拓扑评估算法,其特征在于:所述软件资源图包括软件资源拓扑图和软件资源的硬件资源占用信息;所述软件资源拓扑图为由构成软件的组件和数据集作为顶点、由组件与组件、组件与数据集之间的数据连接作为边形成的无向图,记为S=<VS,ES>,其中VS为顶点集合,ES为边集合,通过对软件资源编号获取软件资源图S中的软件资源信息;
所述软件资源的硬件资源占用信息包括处于静止状态的硬件资源占用信息和处于运行状态的硬件资源占用信息;
所述处于静止状态的硬件资源占用信息记为:
Figure FDA0002375455440000025
其中,
Figure FDA0002375455440000026
分别表示编号为i的软件资源处于静止状态占用的计算、内存、外存、带宽资源的量;
所述处于运行状态的硬件资源占用信息记为:
Figure FDA0002375455440000031
Figure FDA0002375455440000032
Figure FDA0002375455440000033
Figure FDA0002375455440000034
Figure FDA0002375455440000035
其中,记编号为i的软件资源占用计算资源的数目为
Figure FDA0002375455440000036
时长为
Figure FDA0002375455440000037
占用内存资源的数目为
Figure FDA0002375455440000038
时长为
Figure FDA0002375455440000039
占用外存资源的数目为
Figure FDA00023754554400000310
时长为
Figure FDA00023754554400000311
占用带宽资源的数目为
Figure FDA00023754554400000312
时长为
Figure FDA00023754554400000313
服从二维正态分布,对k∈{C,M,E,N},
Figure FDA00023754554400000314
为对应的二维正态分布的参数。
6.根据权利要求2所述的一种基于请求处理模拟的***软硬件拓扑评估算法,其特征在于:所述硬件资源拓扑图为由内存资源、外存资源、运算资源、带宽资源这四类硬件资源作为顶点,以及这四类硬件资源之间的数据连接作为边形成的无向图,每个顶点都有一个用以表明它拥有的资源的量的属性值,该硬件资源拓扑图记为H=<VH,EH>,其中,VH表示顶点集合,EH表示边集合,通过对硬件资源拓扑图的顶点进行编号获取硬件资源图中的顶点硬件资源信息。
7.根据权利要求6所述的一种基于请求处理模拟的***软硬件拓扑评估算法,其特征在于:所述软件部署信息D记为D=(d1,...,dh),其中
Figure FDA00023754554400000315
为编号i的软件资源的部署信息,
Figure FDA00023754554400000316
分别表示该软件资源所占用的运算、内存、外存、带宽资源在硬件资源拓扑图中的顶点编号,h=|VS|+|ES|为软件资源图中软件资源的数目。
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任意一项所述的一种基于请求处理模拟的***软硬件拓扑评估算法,用于根据输入模块的输入信息模拟***处理请求的过程,得到***吞吐量指标;
输出模块,用于输出***吞吐量指标和***当前采用的软硬件拓扑结构的评估结果。
CN202010064200.9A 2020-01-20 2020-01-20 一种基于请求处理模拟的***软硬件拓扑的评估方法及*** Active CN111274109B (zh)

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)

* Cited by examiner, † Cited by third party
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 中国民用航空总局第二研究所 一种硬件资源在特定环境下的性能评估方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
雷擎等: "计算机网络模拟应用于网络拓扑设计", 《计算机应用研究》 *

Also Published As

Publication number Publication date
CN111274109B (zh) 2023-06-02

Similar Documents

Publication Publication Date Title
US20220391771A1 (en) Method, apparatus, and computer device and storage medium for distributed training of machine learning model
EP3754496B1 (en) Data processing method and related products
CN110515739B (zh) 深度学习神经网络模型负载计算方法、装置、设备及介质
US11847554B2 (en) Data processing method and related products
CN111258744A (zh) 一种基于异构计算的任务处理方法及软硬件框架***
CN109669772B (zh) 计算图的并行执行方法和设备
CN103092751B (zh) 一种云环境下基于用户行为模型的web应用性能测试***
CN114741207B (zh) 一种基于多维度组合并行的gpu资源调度方法和***
US11429434B2 (en) Elastic execution of machine learning workloads using application based profiling
CN107562532B (zh) 一种预测设备集群的硬件资源利用率的方法及装置
CN109918182A (zh) 虚拟化技术下的多gpu任务调度方法
CN112764893B (zh) 数据处理方法和数据处理***
CN109657794B (zh) 一种基于指令队列的分布式深度神经网络性能建模方法
US8768680B2 (en) Simulator of multi-core system employing reconfigurable processor cores and method of simulating multi-core system employing reconfigurable processor cores
US8681166B1 (en) System and method for efficient resource management of a signal flow programmed digital signal processor code
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
CN113407343A (zh) 一种基于资源分配的业务处理方法、装置及设备
WO2023071566A1 (zh) 数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品
CN111274109A (zh) 一种基于请求处理模拟的***软硬件拓扑的评估算法及***
Sen et al. Predictive price-performance optimization for serverless query processing
CN112346861A (zh) 资源分配方法、装置、设备和超融合***
CN118069374B (zh) 数据中心智能训练仿真事务加速方法、装置、设备及介质
CN101470660A (zh) 通过子***效能基准发生器进行***测试的方法
CN113722237B (zh) 设备测试方法和电子设备
US11809849B1 (en) Global modulo allocation in neural network compilation

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