游戏进程的分配控制方法、装置和电子设备与流程

文档序号:30135501发布日期:2022-05-21 00:52阅读:190来源:国知局
游戏进程的分配控制方法、装置和电子设备与流程

1.本发明涉及游戏技术领域,尤其是涉及一种游戏进程的分配控制方法、装置和电子设备。


背景技术:

2.多人在线战术竞技游戏通常会有较大的用户基数,一般采用分布式多服务器构架提供服务。为了均衡分布式多服务器构架中每个服务器承载的压力,确保服务器的稳定运行,相关技术中,匹配服服务器通常基于游戏服务器发送的cpu(central processing unit,中央处理器)负载,对新接收到的游戏分配合适的游戏进程。但是,多人在线战术竞技游戏的服务器具有并发量大、用户连接集中、系统状态复杂、且负载变化较快等特点,当分配进程接收到多个游戏,需要对多个游戏分配游戏进程时,可能会出现将多个游戏分配至同一个游戏进程的问题,导致该游戏进程的负载骤升,无法实现服务器的负载均衡,影响服务器的稳定性。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种游戏进程的分配控制方法、装置和电子设备,以避免游戏进程的负载骤升的问题,实现进程负载均衡,提高服务器的稳定性。
4.第一方面,本发明实施例提供了一种游戏进程的分配控制方法,方法应用于匹配服务器;方法包括:接收针对目标游戏场次的进程分配请求;获取游戏服务器中每个游戏进程的权重和单场游戏负载;其中,游戏服务器中运行有多个游戏进程;根据每个游戏进程的权重,从多个游戏进程中确定目标进程,将进程分配请求中目标游戏场次分配至目标进程;基于目标进程的单场游戏负载,控制目标进程的权重降低。
5.进一步的,根据每个游戏进程的权重,从多个游戏进程中确定目标进程,将进程分配请求中目标游戏场次分配至目标进程的步骤,包括:根据每个游戏进程的权重,从多个游戏进程中确定权重大于预设阈值的待分配进程;根据待分配进程的权重大小,通过随机的方式,从待分配进程中确定目标进程,将进程分配请求中目标游戏场次分配至目标进程;其中,待分配进程的权重越大,待分配进程被确定为目标进程的概率越大。
6.进一步的,匹配服务器中运行有多个匹配进程;基于目标进程的单场游戏负载,控制目标进程的权重降低的步骤,包括:通过匹配进程计算目标进程的衰减系数;根据单场游戏负载和目标进程的衰减系数,计算目标进程的衰减权重;将目标进程的权重减去衰减权重,得到降低后的目标进程的权重。
7.进一步的,通过匹配进程计算目标进程的衰减系数的步骤,包括:获取多个游戏进程中所有进程的第一进程数,以及待分配进程的第二进程数;其中,待分配进程为多个游戏进程中权重大于预设阈值的进程;获取多个匹配进程中,处于进程分配状态的第三进程数;根据第一进程数、第二进程数和第三进程数,计算目标进程的衰减系数。
8.进一步的,根据第一进程数、第二进程数和第三进程数,计算目标进程的衰减系数
的步骤,包括:通过下述公式计算目标进程的衰减系数:其中,tb表示第一进程数;cb表示第二进程数;m表示第三进程数;f表示目标进程的衰减系数。
9.进一步的,根据单场游戏负载和目标进程的衰减系数,计算目标进程的衰减权重的步骤,包括:计算单场游戏负载和目标进程的衰减系数的乘积值,将乘积值确定为目标进程的衰减权重。
10.进一步的,游戏进程的权重通过下述方式确定:通过游戏服务器中的游戏进程,获取游戏进程的采样负载,即将加入游戏进程的游戏场次所占用的第一负载,游戏进程中处于准备状态和暂停状态的游戏场次所占用的第二负载;根据采样负载、第一负载和第二负载,计算游戏进程的权重。
11.进一步的,游戏进程的单场游戏负载通过下述方式确定:通过游戏服务器中的游戏进程,根据游戏进程的采样负载和游戏进程中处于游戏状态的游戏场数,计算游戏进程的单场游戏负载。
12.第二方面,本发明实施例提供了一种游戏进程的分配控制装置,装置设置于匹配服务器;装置包括:接收模块,用于接收针对目标游戏场次的进程分配请求;获取模块,用于获取游戏服务器中每个游戏进程的权重和单场游戏负载;其中,游戏服务器中运行有多个游戏进程;分配模块,用于根据每个游戏进程的权重,从多个游戏进程中确定目标进程,将进程分配请求中目标游戏场次分配至目标进程;控制模块,基于目标进程的单场游戏负载,控制目标进程的权重降低。
13.第三方面,本发明实施例提供了一种电子设备,其特征在于,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现第一方面任一项的游戏进程的分配控制方法。
14.第四方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现第一方面任一项的游戏进程的分配控制方法。
15.本发明实施例带来了以下有益效果:
16.本发明提供了一种游戏进程的分配控制方法、装置和电子设备,接收针对目标游戏场次的进程分配请求;获取游戏服务器中每个游戏进程的权重和单场游戏负载;其中的游戏服务器中运行有多个游戏进程;根据每个游戏进程的权重,从多个游戏进程中确定目标进程,将进程分配请求中目标游戏场次分配至目标进程;基于目标进程的单场游戏负载,控制目标进程的权重降低。该方式中,通过游戏进程的权重确定目标进程,在将目标游戏场次分配至目标进程后,降低目标进程的权重,避免了多个游戏场次分配至同一个目标进程,导致目标进程的负载骤升的问题,同时实现了游戏进程的负载均衡,提高了游戏服务器的稳定性。
17.本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
18.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
19.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1为本发明实施例提供的一种游戏进程的分配控制方法的流程图;
21.图2为本发明实施例提供的一种游戏进程中状态变化的示意图;
22.图3为本发明实施例提供的一种具体的游戏服务器的示意图;
23.图4为本发明实施例提供的一种游戏进程的分配控制装置的结构示意图;
24.图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
25.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
26.目前随着网络游戏的发展,moba(multiplayer online battle arena,多人在线战术竞技游戏)类网络游戏逐渐拥有较大的用户基数,moba类游戏通常采用分布式多服务器架构提供服务。为了均衡分布式多服务器构架中每个服务器承载的压力,确保服务器的稳定运行,相关技术中,匹配服服务器通常基于游戏服务器发送的cpu(central processing unit,中央处理器)负载,对新接收到的游戏分配合适的游戏进程。比如,基于nginx(一种高性能的http和反向代理web服务器)的负载均衡方案、基于微服务的负载均衡方案等,其中的负载均衡算法有轮询法、随机法、原地址哈希法、最小连接数法等。以基于nginx的负载均衡方案为例,其采用统一的反向代理中心,为客户端提供服务,多用在web应用集群上,所采用的负载均衡算法包括:加权轮询、最小连接数、ip地址映射等。
27.但是与传统互联网不同,游戏服务器的用户,具有高度的交互性,和高度的状态变化性,并且对延迟特别敏感,仅仅通过采样的方式获取服务器或进程负载,当匹配进程接收到多个游戏,需要对多个游戏分配游戏进程时,且多数游戏进程的负载达到饱和时,可能会出现将多个游戏分配至同一个游戏进程的问题,导致该游戏进程的负载骤升,无法实现服务器的负载均衡,影响服务器的稳定性。基于此,本发明实施例提供的一种游戏进程的分配控制方法、装置和电子设备,该技术可以应用于匹配服务器,尤其可以应用于具有为游戏场次分配游戏进程功能的设备。
28.为便于对本实施例进行理解,首先对本发明实施例所公开的一种游戏进程的分配控制方法进行详细介绍,该方法应用于匹配服务器。其中的游戏具体可以是战斗相关的游戏,游戏进程中包括至少一个战斗场次;如图1所示,该方法包括如下步骤:
29.步骤s102,接收针对目标游戏场次的进程分配请求;
30.上述针对目标游戏场次的进程分配请求可以是客户端发送的,该进程分配请求中包括目标游戏场次,匹配服务器接收到进程分配请求后需要将目标游戏场次分配至合适的游戏进程。上述匹配服务器是指承载匹配单局游戏所需玩家逻辑的服务器,该服务器中运
行有多个匹配进程,用于为接收到的进程匹配请求中的目标游戏场次分配合适的游戏进程。具体的可以是游戏服务器中的中心进程接收针对目标游戏场次的进程分配请求,然后将该请求发送至其中一个匹配进程,或者直接是其中一个匹配进程接收针对目标游戏场次的进程分配请求。
31.步骤s104,获取游戏服务器中每个游戏进程的权重和单场游戏负载;其中,游戏服务器中运行有多个游戏进程;
32.上述游戏服务器与匹配服务器通信连接;上述游戏可以是与战斗相关的游戏,游戏进程可以是与战斗相关的战斗进程,游戏进程中通常包括多场游戏或战斗。具体的,游戏服务器会每隔采样周期的时间,将每个游戏进程的权重和单场游戏负载发送至匹配服务器,在该采样周期内匹配服务器中的匹配进程会将接收到的每个游戏进程的权重和单场游戏负载保存至本地空间。或者,匹配服务器中的匹配进程可以在采样周期内从游戏服务器拉取每个游戏进程的权重和单场游戏负载,然后保存在本地空间。
33.针对每个游戏进程匹配服务器都会接收到该进程的权重和单场游戏负载;其中权重越大说明该游戏进程的负载越小,被分配游戏场次的可能性就越大。
34.步骤s106,根据每个游戏进程的权重,从多个游戏进程中确定目标进程,将进程分配请求中目标游戏场次分配至目标进程;
35.具体的,可以根据权重的由大到小的顺序,对游戏进程进行排序,然后可以提取排在前面的预设数量的待分配的游戏进程,还可以提取大于预设权重值的待分配的游戏进程,其中待分配的游戏进程可以是一个或者多个,然后通过随机选取的方式从待分配的游戏进程中选取一个目标进程;还可以是从待分配的游戏进程中选取权重最大的游戏进程为上述目标进程;还可以是从待分配的游戏进程中按照排列顺序依次选取目标进程。另外,还可以直接通过权重大小,随机从多个游戏进程中确定目标进程,一般权重越大被选中的几率越大。确定了目标进程后即可将进程分配请求中目标游戏场次分配至该目标进程。
36.步骤s108,基于目标进程的单场游戏负载,控制目标进程的权重降低。
37.为了避免根据本地空间中保存的权重分配游戏场次,会将多个游戏场次分配至同一个游戏进程的问题,可以在将进程分配请求中目标游戏场次分配至目标进程的同时,降低目标进程的权重,进而使得匹配进程在后续分配目标游戏场次时,能够根据最新的权重信息分配目标游戏场次。
38.具体的,可以在将本地空间中保存的目标进程的权重减去单场游戏负载,得到降低后的目标进程的权重;还可以根据当前游戏进程和匹配进程的进程数量,先计算需要降低的权重值,然后再讲本地空间中保存的目标进程的权重减去该权重值,得到降低后的目标进程的权重。
39.本发明实施例提供了一种游戏进程的分配控制方法,接收针对目标游戏场次的进程分配请求;获取游戏服务器中每个游戏进程的权重和单场游戏负载;其中的游戏服务器中运行有多个游戏进程;根据每个游戏进程的权重,从多个游戏进程中确定目标进程,将进程分配请求中目标游戏场次分配至目标进程;基于目标进程的单场游戏负载,控制目标进程的权重降低。该方式中,通过游戏进程的权重确定目标进程,在将目标游戏场次分配至目标进程后,根据单场游戏负载降低目标进程的权重,避免了在可选的游戏进程较少的情况下,多个游戏场次分配至同一个目标进程,导致目标进程负载骤升的问题,实现了游戏进程
的负载均衡,提高了游戏服务器的稳定性。
40.下面描述根据每个游戏进程的权重,从多个游戏进程中确定目标进程,将进程分配请求中目标游戏场次分配至目标进程的步骤的具体实现过程,一种可能的实施方式:根据每个游戏进程的权重,从多个游戏进程中确定权重大于预设阈值的待分配进程;根据待分配进程的权重大小,通过随机的方式,从待分配进程中确定目标进程,将进程分配请求中目标游戏场次分配至目标进程;其中,待分配进程的权重越大,待分配进程被确定为目标进程的概率越大
41.上述预设阈值通常根据实际需求预先进行设置,比如10%、5%、1%等,通常该预设阈值较小,甚至可以为0;或者上述预设阈值可以根据权重大于某一数值的游戏进程的数量进行设置,如果权重大于10%的游戏进程较多,则上述预设阈值可以设置的大一些,比如15%,如果权重大于10%的游戏进程较少,则上述预设阈值可以设置的小一些,比如5%、1%等。可以通过控制预设阈值的大小控制待分配进程的数量。另外,待分配进程的数量通常为多个。
42.具体的,在确定了待分配进程后,一般通过随机的方式从待分配进程中确定目标进程,实际实现时,可以将每个待分配进程的权重大小确定为被随机选中的概率,比如,待分配进程的权重大小为90%,则该待分配进程被确定为目标进程的概率为0.9。可以理解为,所有的待分配进程在一个圆盘里,每个待分配进程占圆盘的面积根据权重大小确定,权重越大所占的面积越大,然后通过旋转指针的方式,将指针停止时指向的待分配进程确定为目标进程。最后将进程分配请求中目标游戏场次分配至目标进程。当然在降低权重后,再一次为目标游戏场次匹配游戏进程时还会继续重复上述步骤,重新根据降低后的权重确定目标进程。
43.上述方式中,通过设置预设阈值的方式,先确定权重较大,负载较小的待分配进程,然后通过待分配进程的权重大小,确定每个待分配进程被确定为目标进程的概率,最后在待分配进程中确定目标进程,将进程分配请求中目标游戏场次分配至目标进程,该方式可以使目标游戏场次能够更大可能的去往权重较大、压力较低的进程。
44.上述匹配服务器中运行有多个匹配进程;每个匹配进程中都保存有每个游戏进程的权重和单场游戏负载,同时也会控制每个匹配进程保存的权重降低。下面描述基于目标进程的单场游戏负载,控制目标进程的权重降低的步骤的具体实现过程,一种可能的实施方式:
45.(1)通过匹配进程计算目标进程的衰减系数;
46.为了使得降低的权重值更加符合实际的运行状态,可以根据当前正在工作的匹配进程、待分配进程以及单场游戏负载确定需要降低的权重值。首先可以计算目标进程的衰减系数。
47.一种可能的实施方式:获取多个游戏进程中所有进程的第一进程数,以及待分配进程的第二进程数;其中,待分配进程为多个游戏进程中权重大于预设阈值的进程;获取多个匹配进程中,处于进程分配状态的第三进程数;根据第一进程数、第二进程数和第三进程数,计算目标进程的衰减系数。
48.上述第一进程数即游戏服务器中运行的所有游戏进程的数量,上述第二进程数即待分配进程的数量,上述第三进程数即当前时刻匹配进程中运行的多个匹配进程中处于工
作状态(或处于分配状态)的进程的数量。获取到上述三个进程数后,可以根据预设的公式计算目标进程的衰减系数。
49.具体的,可以通过下述公式计算目标进程的衰减系数:
[0050][0051]
其中,tb表示第一进程数;cb表示第二进程数;m表示第三进程数;f表示目标进程的衰减系数。
[0052]
(2)根据单场游戏负载和目标进程的衰减系数,计算目标进程的衰减权重;
[0053]
一种可能的实施方式:计算单场游戏负载和目标进程的衰减系数的乘积值,将乘积值确定为目标进程的衰减权重。具体可以通过下述公式计算目标进程的衰减权重:
[0054]
δw=f*pb(cpu);
[0055]
其中,f表示目标进程的衰减系数,pb(cpu)表示目标进程的单场游戏负载,δw表示目标进程的衰减权重。
[0056]
(3)将目标进程的权重减去衰减权重,得到降低后的目标进程的权重。
[0057]
具体通过下述公式计算降低后的目标进程的权重:
[0058]w′
=w-δw;
[0059]
其中,w表示接收到的目标进程的权重,w

为降低后的目标进程的权重。
[0060]
可以理解,当第三进程数m越大,即当前时刻处于工作状态(或处于分配状态)的进程的数量越多,第一进程数tb越大,即游戏服务器中运行的所有游戏进程的数量越多,第二进程数cb越小,即待分配进程的数量越少时,上述衰减系数f越大,此时根据该衰减系数计算得到衰减权重就会越大,降低后的目标进程的权重就越小,此时该目标进程被分配多个游戏场次的概率就会降低,同时也会降低该目标进程的负载骤升的问题。当然如果此时不降低目标进程的权重可能会导致同一时刻可能分配到某个目标进程的游戏场次就会越多,导致目标进程的负载骤升。
[0061]
比如,目标进程的权重为1,单场游戏负载为0.2,下发到匹配进程被保存至本地空间,在采样周期内接收到一个进程匹配请求,当为目标进程分配该进程匹配请求中的游戏场次后,降低目标进程的权重,如果直接将目标进程的权重降低为1-0.2=0.8,则在这个采样周期内最多还能分配4场游戏到该目标进程;如果衰减系数f变大变成了2,则衰减权重变成了0.4,则再分配一场游戏后该目标进程的权重变成了0.8-0.4=0.4,之后就只能分配一场游戏了。
[0062]
该方式中,通过降低权重的方式,将匹配进程中保存的权重设置为一个动态的值,衰减后目标进程的权重就会减小,从而避免不断的向同一个目标进程分配游戏场次的问题,进而实现了负载均衡,提高了服务器的稳定性。
[0063]
上述第三进程数m越大,第一进程数tb越大,第二进程数cb越小,可以理解为cpu负载临界值问题。当大多数游戏进程的cpu负载达到饱和,并且不可以被直接选中时,新到来的游戏场次会大量涌入少数可被直接选中的游戏进程从而导致cpu负载骤升。本实施例中匹配服务器在采样间隔内本地缓存目标进程权重,既可预测采样周期间隔内各游戏进程负载变化情况,又可控制短时间内同一个匹配进程选中同一个游戏进程的频次,从而避免临界值问题。
[0064]
下面描述游戏进程的权重的计算方式:通过游戏服务器中的游戏进程,获取游戏进程的采样负载,即将加入游戏进程的游戏场次所占用的第一负载,游戏进程中处于准备状态和暂停状态的游戏场次所占用的第二负载;根据采样负载、第一负载和第二负载,计算游戏进程的权重。
[0065]
通常网络游戏中拥有多种游戏状态,比如,准备状态、暂停状态、游戏状态,其中不同的状态消耗的cpu负载不同,且状态之间具有一定转换关系,如图2所示的一种游戏进程中状态变化的示意图,其中处于游戏状态(对应图中的battle)的游戏场次需要不停的同步玩家位置以及操作,因此处于游戏状态的游戏场次所占用的cpu负载较高,而处于准备状态(对应图中的wait)和暂停状态(对应图中的pause)的游戏场次由于玩家不需要进行移动和操作,因此消耗的cpu负载相对较少。但是,由于处于准备状态和暂停状态的游戏场次很有可能被随机切换到游戏状态,因此为了保证游戏进程中各个游戏场次能够稳定运行,游戏进程需要为处于准备状态和暂停状态的游戏场次的游戏预留出足够的负载空间,以随时承载处于准备状态和暂停状态的游戏场次的游戏切换状态带来的负载变化。即可以将处于准备状态和暂停状态的游戏场次当作游戏状态的游戏场次去计算。
[0066]
另外,由于确定采样负载的采样过程通常具有周期性,对于低负载的游戏进程,在采样间隔中通常会有较多的游戏场次分配到该游戏进程,从而导致该游戏进程的cpu负载波动较大,为了避免该问题,可以预测每个游戏进程中即将到来的游戏场次,比如,5秒内可能会分配到当前游戏进程的游戏场次,然后将该部分游戏场次所消耗的cpu负载预先确定到该游戏进程所占用的负载中。
[0067]
具体的,可以获取每个游戏进程的采样负载y(t),即将加入游戏进程的游戏场次c(t),游戏进程中处于准备状态和暂停状态的游戏场次n(t),游戏进程中处于游戏状态的游戏场次b(t)。然后根据公式计算得到即将加入游戏进程的游戏场次所占用的第一负载;根据公式计算得到游戏进程中处于准备状态和暂停状态的游戏场次所占用的第二负载。具体根据下述预测模型计算每个游戏进程的预测负载:
[0068][0069]
其中,t(cpu)表示当前时刻游戏进程的预测负载;a、b、c为预测模型的模型参数;上述表示每个游戏场次在游戏状态下所占用的cpu负载。然后根据公式w=1-t(cpu)计算每个游戏进程的权重。该方式中,考虑了游戏进程中每个游戏场次当前的状态,以及即将加入游戏进程的游戏场次,为游戏进程预留出即将加入游戏进程和处于准备和暂停状态的游戏场次所占用的负载,使得最终确定的进程负载更加符合实际游戏的运行,提高了进程负载的准确性,进而提高了服务器的稳定性。
[0070]
另外,上述即将加入游戏进程的游戏场次可以通过下述方式计算得到:
[0071]
c(t)=αs(t)+(1一α)c(t-1);
[0072]
其中,c(t)表示t时刻即将加入游戏进程的游戏场次;s(t)表示在t时刻游戏进程
的当前游戏场次;c(t-1)表示前一时刻游戏进程中加入的历史游戏场次;α为预设的权重系数;0<α<1。可以理解上述c(t)为游戏进程中下一个采样周期会加入游戏进程的游戏场次;上述s(t)为当前时刻游戏进程中新加入的当前游戏场次,也即当前采样周期内游戏进程中新加入的当前游戏场次;c(t-1)为前一个采样周期内游戏进程中加入的历史游戏场次。
[0073]
可以理解的是,时间越长,最早获取的历史游戏场次的系数越小,对第一游戏场次的影响也就越小,进而可以实现控制新加入的游戏进程的负载由一个较大的数值逐渐下降到真实值。
[0074]
通常在游戏进程初始时刻,即游戏服务器刚开始运行,或者进程扩容时,新扩张上来的游戏进程如果按照当前采样的方式获取cpu负载,得到的负载较低,可能会发生大量游戏场次分配至该游戏进程,导致该进程cpu负载骤升的情况。通过上述一次指数平滑模型,通过设置初始数值,可以控制该游戏进程新加入的游戏场次,由较高的数值逐渐降低到真是值,同时通过控制即将加入游戏进程的游戏场次可以控制该游戏进程的权重能够由一个较小的数值,随着时间逐渐降低到真实的权重值。
[0075]
下面描述游戏进程的单场游戏负载的计算方式:通过游戏服务器中的游戏进程,根据游戏进程的采样负载和游戏进程中处于游戏状态的游戏场数,计算游戏进程的单场游戏负载。
[0076]
实际实现时,可以根据预设的历史时间段内每一时刻游戏进程的采样负载和处于游戏状态的游戏场次,计算历史时间段内每一时刻游戏进程的单场游戏负载;计算历史时间段内每一时刻游戏进程的单场游戏负载的平均值,得到当前时刻游戏进程的单场游戏负载。
[0077]
具体可以采用下述滑动窗口平均的方式对其进行单场游戏负载预测:
[0078][0079]
上述方式计算得到的单场游戏负载考虑了历史时间段的单场游戏负载,预测的结果更加真实,更加符合实际的游戏的运行状态。
[0080]
具体的,可以参见图3所示的具体的游戏服务器的示意图,通常多人在线战术竞技游戏为分布式多服务器构架,该构架包括多个战斗服(对应前述的游戏服务器)承载游戏战斗逻辑的服务器,如图中的战斗服1、战斗服2。还包括多个匹配服(对应前述的匹配服务器)承载匹配单局战斗所需玩家逻辑的服务器。每个战斗服中运行有多个战斗进程(对应前述的游戏进程)以及一个中心进程,同样的每个匹配服中运行有多个匹配进程以及一个中心进程,每个战斗服与匹配服之间通过中心进程通信,战斗服中每个战斗进程与中心进程通信,匹配服中每个匹配进程与中心进程通信。
[0081]
本实施例基于多战斗服,多匹配服的分布式系统,其中每个战斗进程与本战斗服上的中心进程建立连接,中心进程与匹配进程建立连接。在匹配进程上,本实施例选择基于加权随机的选服算法,选服步骤大致包含:
[0082]
step1.各战斗进程定时采样战斗进程上的cpu负载使用情况y(t),t-1到t时刻观察新到来的战斗场次s(t),t时刻准备中和暂停的战斗场次n(t),以及当前正在战斗中的战斗场次b(t)。
[0083]
step2.各战斗进程基于式计算pb(t),并基于式计算pb(t),并基于式对pb(t)做滑动窗口平均从而预测一段时间内的平均值pb(cpu),基于式计算c(t),并将y(t)、c(t)、n(t)和pb(cpu)同步到当前战斗服中心进程。
[0084]
step3.战斗服中心进程根据收集到的信息计算每个战斗进程cpu总负载t(cpu);然后根据式w=1-t(cpu)计算出每个战斗进程的权重。
[0085]
step4.战斗服中心进程将当前所有战斗进程权重信息以及pb(cpu)下发到匹配服。
[0086]
step5.匹配进程拉取并缓存所有战斗进程权重信息和pb(cpu),在新战斗到来时通过加权随机进行选服,每一次选中后,将该战斗进程的本地权重减去δw,若所有可选战斗进程的权重均降为0则回退到纯随机选服。
[0087]
对应上述的方法实施例,本发明实施例还提供了一种游戏进程的分配控制装置,该装置设置于匹配服务器,如图4所示,该装置包括:
[0088]
接收模块41,用于接收针对目标游戏场次的进程分配请求;
[0089]
获取模块42,用于获取游戏服务器中每个游戏进程的权重和单场游戏负载;其中,游戏服务器中运行有多个游戏进程;
[0090]
分配模块43,用于根据每个游戏进程的权重,从多个游戏进程中确定目标进程,将进程分配请求中目标游戏场次分配至目标进程;
[0091]
控制模块44,基于目标进程的单场游戏负载,控制目标进程的权重降低。
[0092]
本发明实施例提供了一种游戏进程的分配控制装置,接收针对目标游戏场次的进程分配请求;获取游戏服务器中每个游戏进程的权重和单场游戏负载;其中的游戏服务器中运行有多个游戏进程;根据每个游戏进程的权重,从多个游戏进程中确定目标进程,将进程分配请求中目标游戏场次分配至目标进程;基于目标进程的单场游戏负载,控制目标进程的权重降低。该方式中,通过游戏进程的权重确定目标进程,在将目标游戏场次分配至目标进程后,根据单场游戏负载降低目标进程的权重,避免了在可选的游戏进程较少的情况下,多个游戏场次分配至同一个目标进程,导致目标进程负载骤升的问题,实现了游戏进程的负载均衡,提高了游戏服务器的稳定性。
[0093]
进一步的,上述分配模块还用于:根据每个游戏进程的权重,从多个游戏进程中确定权重大于预设阈值的待分配进程;根据待分配进程的权重大小,通过随机的方式,从待分配进程中确定目标进程,将进程分配请求中目标游戏场次分配至目标进程;其中,待分配进程的权重越大,待分配进程被确定为目标进程的概率越大。
[0094]
进一步的,上述匹配服务器中运行有多个匹配进程;上述控制模块还用于:通过匹配进程计算目标进程的衰减系数;根据单场游戏负载和目标进程的衰减系数,计算目标进程的衰减权重;将目标进程的权重减去衰减权重,得到降低后的目标进程的权重。
[0095]
进一步的,上述控制模块还用于:获取多个游戏进程中所有进程的第一进程数,以及待分配进程的第二进程数;其中,待分配进程为多个游戏进程中权重大于预设阈值的进
程;获取多个匹配进程中,处于进程分配状态的第三进程数;根据第一进程数、第二进程数和第三进程数,计算目标进程的衰减系数。
[0096]
进一步的,上述控制模块还用于:通过下述公式计算目标进程的衰减系数:其中,tb表示第一进程数;cb表示第二进程数;m表示第三进程数;f表示目标进程的衰减系数。
[0097]
进一步的,上述控制模块还用于:计算单场游戏负载和目标进程的衰减系数的乘积值,将乘积值确定为目标进程的衰减权重。
[0098]
进一步的,上述游戏进程的权重通过下述方式确定:通过游戏服务器中的游戏进程,获取游戏进程的采样负载,即将加入游戏进程的游戏场次所占用的第一负载,游戏进程中处于准备状态和暂停状态的游戏场次所占用的第二负载;根据采样负载、第一负载和第二负载,计算游戏进程的权重。
[0099]
进一步的,上述游戏进程的单场游戏负载通过下述方式确定:通过游戏服务器中的游戏进程,根据游戏进程的采样负载和游戏进程中处于游戏状态的游戏场数,计算游戏进程的单场游戏负载。
[0100]
本发明实施例提供的游戏进程的分配控制装置,与上述实施例提供的游戏进程的分配控制方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
[0101]
本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述游戏进程的分配控制方法。该电子设备可以是服务器,也可以是终端设备。
[0102]
参见图5所示,该电子设备包括处理器100和存储器101,该存储器101存储有能够被处理器100执行的机器可执行指令,该处理器100执行机器可执行指令以实现上述游戏进程的分配控制方法。
[0103]
进一步地,图5所示的电子设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。
[0104]
其中,存储器101可能包含高速随机存取存储器(ram,random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0105]
处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理
器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。
[0106]
本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述游戏进程的分配控制方法。
[0107]
本发明实施例所提供的游戏进程的分配控制方法、装置、电子设备以及系统的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
[0108]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0109]
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0110]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0111]
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0112]
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1