一种基于仿真软件的资源分配方法及系统
技术领域
本发明属于高性能计算技术领域,尤其涉及一种基于仿真软件的资源分配方法及系统。
背景技术
仿真软件(simulation software),专门用于仿真的计算机软件。它与仿真硬件同为仿真的技术工具。它的发展与仿真应用、算法、计算机和建模等技术的发展相辅相成。但现有的仿真软件所提供的Web组件数据处理性能往往不能满足多用户同时访问。例如商贸经营决策仿真竞赛软件中所提供web服务组件,在竞赛软件的学生端出现学生并发访问时,Web服务器经常会出现无响应,并需要人工进行重新启动的现象。因此,面对现有仿真软件应用中出现的上述情况,有必要提出一种新的基于仿真软件的资源请求分配方法。
发明内容
本发明实施例提供了基于仿真软件的资源请求分配方法及装置,以解决现有技术中仿真软件提供的Web服务的组件在进行资源请求分配时处理效率低,服务器经常出现无响应的问题。
本发明实施例的第一方面提供了一种基于仿真软件的资源分配方法,所述资源分配方法包括:
接收用户发送的Web页面请求,判断所接收的Web页面请求数量是否超过第一预设阈值;
在所接收的Web页面请求的数量超过第一预设阈值时,根据所述Web页面请求启动至少两个二级服务器;
动态轮询所述二级服务器,根据轮询结果选择所述Web页面请求需分配的二级服务器。
本发明实施例的第二方面提供了一种基于仿真软件的资源分配方法,所述资源分配方法包括:
接收一级服务器转发的Web页面请求;
生成与所述Web页面请求相对应的资源定位符,存储所述资源定位符于session队列中。
本发明实施例的第三方面提供了一种基于仿真软件的资源分配系统,所述基于仿真软件的资源分配系统包括一级服务器和二级服务器,所述一级服务器包括:
页面请求接收单元,用于接收用户发送的Web页面请求,判断所接收的Web页面请求数量是否超过第一预设阈值;
二级服务器启动单元,用于在所接收的Web页面请求的数量超过第一预设阈值时,根据所述Web页面请求启动至少两个二级服务器;
分配单元,用于动态轮询所述二级服务器,根据轮询结果选择所述Web页面请求需分配的二级服务器。
本发明实施例与现有技术相比存在的有益效果是:在进行仿真软件业务仿真时,由一级服务器首先接收用户发送的Web页面请求,当判断出所述Web页面请求的数量超过第一预设阈值时,启动至少两个二级服务器;动态轮询所述二级服务器后,根据轮询结果,将所接收到的Web页面分配到适合的二级服务器。通过动态轮询策略使二级服务器负载均衡,提高了其执行效率。启动多个二级服务器进行服务,重复使用单个二级服务器的概率减少,每个二级服务器的服务能力得到充分调动。分配到单个二级服务器的负载减少,降低了二级服务器失效的概率,提高了原本性能不高的仿真软件的业务吞吐能力。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的一种基于仿真软件的资源分配方法的实现流程图;
图2是本发明第一实施例提供的图1中步骤S13的具体流程图;
图3本发明第二实施例提供的一种基于仿真软件的资源分配方法的实现流程图;
图4是本发明第三实施例提供的一种基于仿真软件的资源分配系统的结构框图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
本发明实施例中,在进行仿真软件进行业务仿真时,由一级服务器首先接收用户发送的Web页面请求,当判断出所述Web页面请求的数量超过第一预设阈值时,启动至少两个二级服务器;动态轮询所述二级服务器后,根据轮询结果,将所接收到的Web页面分配到适合的二级服务器。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本发明第一实施例提供的一种基于仿真软件的资源分配方法的流程图,详述如下:
步骤S11,接收用户发送的Web页面请求,判断所接收的Web页面请求数量是否超过第一预设阈值;
仿真软件的用户端经常需要一次性接收多于一个的用户请求,同一时间内接收的用户请求过多时,用户端的服务器(即一级服务器)经常会响应慢甚至无响应的情况。因此,本发明实施例提供的基于仿真软件的资源分配方法中,一级服务器对一定时间间隔内所接收到的用户发出的Web页面请求的数量先进行判断,判断所接收到的Web页面请求的数量是否超过第一预设阈值。所述第一预设阈值可以根据仿真软件的系统处理能力进行设定,即仿真系统配置的软、硬件处理能力较强时可以设置较大的第一预设阈值;仿真系统配置的软、硬件处理能力一般时可相应减少第一预设阈值,具体数值在此不做限制。
步骤S12,在所接收的Web页面请求的数量超过第一预设阈值时,根据所述Web页面请求启动至少两个二级服务器;
该步骤中,若一级服务器判断出一定时间间隔内所接收的Web页面请求的数量超过第一预设阈值,则根据所述Web页面请求启动至少两个二级服务器。首先对接收到的Web页面请求的数量进行判断,在一段时间内Web页面请求数量过多,超过一级服务器的处理能力时再启动多个二级服务器,若没有超过,则不启动多个二级服务器,这样,既保证了用户请求及时被响应,又避免了在不需要时启动多个二级服务器的情况,起到节约资源的作用。
优选地,所述在所接收的Web页面请求的数量超过第一预设阈值时,根据所述Web页面请求启动至少两个二级服务器,具体包括:
在所接收的Web页面请求的数量超过第一预设阈值时,根据所述Web页面请求,获取队列长度,所述队列长度与二级服务器的个数对应;
根据所述队列长度启动至少两个二级服务器。
具体的,一级服务器判断出一定时间间隔内所接收的Web页面请求的数量超过第一预设阈值时,启动加速模块,获取当前进程中健康队列的队列长度,所述队列长度与二级服务器的个数对应,因此,可以根据所获取的健康的队列的队列长度确定可以启动的二级服务器的数量,其中,所述加速模块用于快速启动二级服务器,以便启动的二级服务器能够更快地响应Web页面请求。所述队列长度=队头–队尾;根据所述队列长度从非关系型数据库,NoSQL中获取并启动二级服务器,记录所启动的二级服务器的信息,记录的二级服务器的信息形成计算资源池。基于NoSQL的内存数据库,利用了NoSQL数据库高速访问的特点,实现了高性能的服务资源池。服务资源池化实现了应用资源输出队列,服务资源同构可互换性。
步骤S13,动态轮询所述二级服务器,根据轮询结果选择所述Web页面请求需分配的二级服务器。
该步骤中,对已启动的二级服务器进行动态轮询策略,动态轮询策略即Web负载均衡动态轮询策略,用途是资源分配。它是一个多阶段决策问题,各个阶段的决策构成一个决策序列,称为一个策略。轮询时可选的策略有,基于蒙特卡洛方法的动态轮询策略,基于空间划分轮询策略。两者相结合,将用户发送的Web页面请求均匀的分配给二级服务器,实现负载均衡。
如图2所示,所述动态轮询所述二级服务器,根据轮询结果选择所述Web页面请求需分配的二级服务器,具体包括:
步骤S131,逐个判断所述二级服务器是否存在与所述Web页面请求相关的标记,当判断出所述二级服务器中不存在与所述Web页面请求相关的标记时,通过蒙特卡洛算法生成随机种子,根据生成的随机种子计算分配所述Web页面请求到所述二级服务器的概率;
步骤S132,根据所述概率选择所述Web页面请求分配的二级服务器;
步骤S133,当判断出所述二级服务器中存在与所述Web页面请求相关的标记时,直接分配所述Web页面请求到对其进行标记的二级服务器。
具体地,在将用户发送的Web页面请求分配到二级服务器时,首先调用所述二级服务器中的session队列,查询所述session队列中是否存储有所述Web页面请求的资源定位符---VSRL-RLI,若未在所述二级服务器的session队列中查询到所述Web页面请求的资源定位符,则通过蒙特卡洛算法对已启动的二级服务器进行动态轮询,以确定出最适合接收当前Web页面请求的二级服务器。轮询到已启动的二级服务器中的某一个时,采用蒙特卡洛算法进行动态轮询时,通过MD5算法生成随机种子,使用所述随机种子生成一个随机字符串,对字符串进行加密,得到一个64bit十进制的正整数m。由于可接收Web页面请求的二级服务器的数量有限,假设存储有二级服务器的信息的健康队列的队列长度为n,即,可启动n个二级服务器,则对值空间做一投射,将m投射到n个二级服务器上。当二级服务器的参数值为m时,分配Web页面请求到该参数值(或随机种子)为m的二级服务器的概率为:P(A)=P(A|m)。根据对每个启动的二级服务器轮询得出的概率,将接收到的Web页面请求均匀的分配到不同的二级服务器;在对每个启动的二级服务器进行轮询得出分配Web页面请求到二级服务器的概率后,优先将Web页面请求分配到所得概率数值较大的二级服务器,使每个二级服务器负载均衡。采用蒙特卡洛算法分配Web页面请求时,将原有的批量处理方法,修改为联机处理方法,分流了一级服务器的负载。
进一步地,若在所述二级服务器的session队列中查询到所述Web页面请求的资源定位符,说明用户已通过该二级服务器处理过所述Web页面请求,则直接将所述Web页面请求分配到该二级服务器,由该二级服务器完成页面寻址等逻辑业务。
优选地,在所述动态轮询所述二级服务器,根据轮询结果分配所述Web页面请求到所述二级服务器之后,还包括:
监控所述二级服务器,当所述二级服务器的系统占用率达到预设阈值时,关闭系统占用率达到第二预设阈值的二级服务器,返回访问失败结果,重新分配用户发出的Web页面请求。
该步骤中,健康管理系统通过系统进程查询语言,对二级服务器的应用执行状态进行健康评估,即监控二级服务器的系统CPU占用情况,若监控到某个二级服务器系统CPU占用率超过第二预设阈值,说明当前二级服务器负载过重,则当前二级服务器不再接收新的任务请求。程序显式提示用户重新登录以重新发送Web页面请求,返回一级服务器,重新分配接收所述Web页面请求二级服务器。重新分配的二级服务器可读取到相同的决策数据,实现服务资源同构可互换的特性。所述二级服务器即为服务资源,也就是用于接收Web页面请求的资源。所述健康管理系统进程扮演了用于资源监控,它部署了一个闭环控制反馈系统,基于PDCA模型的详细规格,实现了增量和大规模服务质量,操作有效性,和业务持续能力的改进。它能够接受计划视角下输入流量的变化,并使一级服务具有高可靠性。
本发明第一实施例中,在进行仿真软件进行业务仿真时,由一级服务器首先接收用户发送的Web页面请求,当判断出所述Web页面请求的数量超过第一预设阈值时,启动至少两个二级服务器;动态轮询所述二级服务器后,根据轮询结果,将所接收到的Web页面分配到适合的二级服务器。在进行动态轮询时采用了蒙特卡洛方法结合按空间划分轮询策略,使二级服务器负载均衡,提高了其执行效率。同时启动多个二级服务器进行服务,重复使用单个二级服务器的概率减少,每个二级服务器的服务能力得到充分调动。分配到单个二级服务器的负载减少,降低了二级服务器失效的概率,提高了原本性能不高的仿真软件的业务吞吐能力;另外,由于二级服务器的数量具有高可扩展性,可动态适应的计算服务需求的增长。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例二:
图3示出了本发明第二实施例提供的一种基于仿真软件的资源分配方法的流程图,其中:
步骤S31,接收一级服务器转发的Web页面请求;
步骤S32,生成与所述Web页面请求相对应的资源定位符,存储所述资源定位符于session队列中。
本发明第二实施例中,二级服务器在接收到一级服务器发送的新的之后创建新的session,返回用户请求的服务资源,生成与所述Web页面请求相对应的VSRL-RLI,并将所述VSRL-RLI存储在二级服务器中的session中,以供用户下次发出相同请求时,一级服务器根据其生成的资源定位符与二级服务器生成的资源定位符进行匹配,若能够正确匹配,则直接将其分配到已记录匹配的资源定位符的二级服务器。
实施例三:
对应于上文实施例一、实施例二所述的一种基于基于仿真软件的资源分配方法,图4示出了本发明实施例提供的一种基于基于仿真软件的资源分配系统的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。
参照图4,所述资源分配系统包括:包括一级服务器41和二级服务器42,所述一级服务器包括:页面请求接收单元411,二级服务器启动单元412,分配单元413;其中:
页面请求接收单元411,用于接收用户发送的Web页面请求,判断所接收的Web页面请求数量是否超过第一预设阈值;
具体地,一级服务器对一定时间间隔内所接收到的用户发出的Web页面请求的数量先进行判断,判断所接收到的Web页面请求的数量是否超过第一预设阈值。所述第一预设阈值可以根据仿真软件的系统处理能力进行设定,即仿真系统配置的软、硬件处理能力较强时可以设置较大的第一预设阈值;仿真系统配置的软、硬件处理能力一般时可相应减少第一预设阈值,具体数值在此不做限制。
二级服务器启动单元412,用于在所接收的Web页面请求的数量超过第一预设阈值时,根据所述Web页面请求启动至少两个二级服务器;
若一级服务器判断出一定时间间隔内所接收的Web页面请求的数量超过第一预设阈值,则根据所述Web页面请求启动至少两个二级服务器。首先对接收到的Web页面请求的数量进行判断,在一段时间内Web页面请求数量过多,超过一级服务器的处理能力时再启动多个二级服务器,若没有超过,则不启动多个二级服务器,这样,既保证了用户请求及时被响应,又避免了在不需要时启动多个二级服务器的情况,起到节约资源的作用。
优选地,所述二级服务器启动单元412,具体包括:
队列长度获取模块,用于在所接收的Web页面请求的数量超过第一预设阈值时,根据所述Web页面请求,获取队列长度,所述队列长度与二级服务器的个数对应;
启动模块,用于根据所述队列长度启动至少两个二级服务器。
具体的,一级服务器判断出一定时间间隔内所接收的Web页面请求的数量超过第一预设阈值时,启动加速模块,获取当前进程中健康队列的队列长度,所述队列长度与二级服务器的个数对应,因此,可以根据所获取的健康的队列的队列长度确定可以启动的二级服务器的数量,其中,所述加速模块用于快速启动二级服务器,以便启动的二级服务器能够更快地响应Web页面请求。所述队列长度=队头–队尾;根据所述队列长度从非关系型数据库,NoSQL中获取并启动二级服务器,记录所启动的二级服务器的信息,记录的二级服务器的信息形成计算资源池。基于NoSQL的内存数据库,利用了NoSQL数据库高速访问的特点,实现了高性能的服务资源池。服务资源池化实现了应用资源输出队列,服务资源同构可互换性。
分配单元413,用于动态轮询所述二级服务器,根据轮询结果选择所述Web页面请求需分配的二级服务器。
具体地,对已启动的二级服务器进行动态轮询策略,动态轮询策略即Web负载均衡动态轮询策略,用途是资源分配。它是一个多阶段决策问题,各个阶段的决策构成一个决策序列,称为一个策略。轮询时可选的策略有,基于蒙特卡洛方法的动态轮询策略,基于空间划分轮询策略。两者相结合,将用户发送的Web页面请求均匀的分配给二级服务器,实现负载均衡。
优选地,所述分配单元413,具体包括:
概率计算模块,用于逐个判断所述二级服务器是否存在与所述Web页面请求相关的标记,当判断出所述二级服务器中不存在与所述Web页面请求相关的标记时,通过蒙特卡洛算法生成随机种子,根据生成的随机种子计算分配所述Web页面请求到所述二级服务器的概率;
第一分配模块,用于根据所述概率选择所述Web页面请求分配的二级服务器;
第二分配模块,用于当判断出所述二级服务器中存在与所述Web页面请求相关的标记时,直接分配所述Web页面请求到对其进行标记的二级服务器。
具体地,在将用户发送的Web页面请求分配到二级服务器时,首先调用所述二级服务器中的session队列,查询所述session队列中是否存储有所述Web页面请求的资源定位符---VSRL-RLI,若未在所述二级服务器的session队列中查询到所述Web页面请求的资源定位符,则通过蒙特卡洛算法对已启动的二级服务器进行动态轮询,以确定出最适合接收当前Web页面请求的二级服务器。轮询到已启动的二级服务器中的某一个时,采用蒙特卡洛算法进行动态轮询时,通过MD5算法生成随机种子,使用所述随机种子生成一个随机字符串,对字符串进行加密,得到一个64bit十进制的正整数m。由于可接收Web页面请求的二级服务器的数量有限,假设存储有二级服务器的信息的健康队列的队列长度为n,即,可启动n个二级服务器,则对值空间做一投射,将m投射到n个二级服务器上。当二级服务器的参数值为m时,分配Web页面请求到该参数值(或随机种子)为m的二级服务器的概率为:P(A)=P(A|m)。根据对每个启动的二级服务器轮询得出的概率,将接收到的Web页面请求均匀的分配到不同的二级服务器;在对每个启动的二级服务器进行轮询得出分配Web页面请求到二级服务器的概率后,优先将Web页面请求分配到所得概率数值较大的二级服务器,使每个二级服务器负载均衡。采用蒙特卡洛算法分配Web页面请求时,将原有的批量处理方法,修改为联机处理方法,分流了一级服务器的负载。
进一步地,若在所述二级服务器的session队列中查询到所述Web页面请求的资源定位符,说明用户已通过该二级服务器处理过所述Web页面请求,则直接将所述Web页面请求分配到该二级服务器,由该二级服务器完成页面寻址等逻辑业务。
优选地,所述资源分配系统,还包括:
监控单元,用于监控所述二级服务器,当所述二级服务器的系统占用率达到预设阈值时,关闭系统占用率达到第二预设阈值的二级服务器,返回访问失败结果,重新分配用户发出的Web页面请求。
具体地,健康管理系统通过系统进程查询语言,对二级服务器的应用执行状态进行健康评估,即监控二级服务器的系统CPU占用情况,若监控到某个二级服务器系统CPU占用率超过第二预设阈值,说明当前二级服务器负载过重,则当前二级服务器不再接收新的任务请求。程序显式提示用户重新登录以重新发送Web页面请求,返回一级服务器,重新分配接收所述Web页面请求二级服务器。重新分配的二级服务器可读取到相同的决策数据,实现服务资源同构可互换的特性。所述二级服务器即为服务资源,也就是用于接收Web页面请求的资源。所述健康管理系统进程扮演了用于资源监控,它部署了一个闭环控制反馈系统,基于PDCA模型的详细规格,实现了增量和大规模服务质量,操作有效性,和业务持续能力的改进。它能够接受计划视角下输入流量的变化,并使一级服务具有高可靠性。
优选地,所述二级服务器42,还包括:
记录单元421,用于接收一级服务器转发的Web页面请求,并生成与所述Web页面请求相对应的资源定位符,存储所述资源定位符于session队列中。
具体地,二级服务器在接收到一级服务器发送的新的之后创建新的session,返回用户请求的服务资源,生成与所述Web页面请求相对应的VSRL-RLI,并将所述VSRL-RLI存储在二级服务器中的session中,以供用户下次发出相同请求时,一级服务器根据其生成的资源定位符与二级服务器生成的资源定位符进行匹配,若能够正确匹配,则直接将其分配到已记录匹配的资源定位符的二级服务器。
本发明第三实施例中,在进行仿真软件进行业务仿真时,由一级服务器首先接收用户发送的Web页面请求,当判断出所述Web页面请求的数量超过第一预设阈值时,启动至少两个二级服务器;动态轮询所述二级服务器后,根据轮询结果,将所接收到的Web页面分配到适合的二级服务器。在进行动态轮询时采用了蒙特卡洛方法结合按空间划分轮询策略,使二级服务器负载均衡,提高了其执行效率。同时启动多个二级服务器进行服务,重复使用单个二级服务器的概率减少,每个二级服务器的服务能力得到充分调动。分配到单个二级服务器的负载减少,降低了二级服务器失效的概率,提高了原本性能不高的仿真软件的业务吞吐能力;另外,由于二级服务器的数量具有高可扩展性,可动态适应的计算服务需求的增长。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。