CN108170526A - 负载能力优化方法、装置、服务器及可读存储介质 - Google Patents
负载能力优化方法、装置、服务器及可读存储介质 Download PDFInfo
- Publication number
- CN108170526A CN108170526A CN201711277306.1A CN201711277306A CN108170526A CN 108170526 A CN108170526 A CN 108170526A CN 201711277306 A CN201711277306 A CN 201711277306A CN 108170526 A CN108170526 A CN 108170526A
- Authority
- CN
- China
- Prior art keywords
- task
- parallel
- serial
- processor core
- processing
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Abstract
本发明实施例提供一种负载能力优化方法、装置、服务器及可读存储介质。该方法包括:获得所有游戏玩家的待处理任务;基于预设规则将所述待处理任务拆分为串行任务和并行任务;按照所述待处理任务的处理顺序,将每个串行任务通过主线程进行串行处理,将同一并行任务分配到所述服务器的各个处理器核心上进行并行处理,并将并行处理后的任务数据串行应用于下一处理顺序的串行任务中。由此,能够有效提高服务器的负载能力,从而承担更多的在线玩家。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种负载能力优化方法、装置、服务器及可读存储介质。
背景技术
当前大型3D网络游戏中,最大的需求就是提高负载能力,从而能够承担更多的在线玩家。传统方法主要是将游戏的主要逻辑承载在一个进程内的主线程内,玩家的全部数据和全部逻辑运算都由一个线程承载,数据访问方便,但是受硬件性能所限制,随着玩家数量的提高,数据量和计算量都急剧上升,但是由于设计的原因无法突破硬件极限,很难继续承担更多的在线玩家。
发明内容
为了克服现有技术中的上述不足,本发明的目的在于提供一种负载能力优化方法、装置、服务器及可读存储介质,以提高服务器的负载能力,从而承担更多的在线玩家。
为了实现上述目的,本发明较佳实施例采用的技术方案如下:
本发明较佳实施例提供一种负载能力优化方法,应用于服务器,所述方法包括:
获得所有游戏玩家的待处理任务;
基于预设规则将所述待处理任务拆分为串行任务和并行任务;
按照所述待处理任务的处理顺序,将每个串行任务通过主线程进行串行处理,将同一并行任务分配到所述服务器的各个处理器核心上进行并行处理,并将并行处理后的任务数据串行应用于下一处理顺序的串行任务中。
在本发明较佳实施例中,所述服务器中预先配置有每个游戏任务的处理策略,所述处理策略包括并行处理策略和串行处理策略,其中,所述并行处理策略表征该游戏任务只与该游戏玩家上个处理顺序的游戏任务相关,所述串行处理策略表征该游戏任务与其它玩家的游戏任务相关,所述基于预设规则将所述待处理任务拆分为串行任务和并行任务,包括:
获取每个待处理任务的处理策略;
根据所述处理策略将所述待处理任务拆分为串行任务和并行任务。
在本发明较佳实施例中,所述将同一并行任务分配到所述服务器的各个处理器核心上进行并行处理,包括:
获取各个处理器核心的空闲率;
根据每个处理器核心的空闲率,确定分配给每个处理器核心的同一并行任务的任务数量;
将所述同一并行任务按照确定的任务数量分别分配给对应的处理器核心进行并行处理。
在本发明较佳实施例中,所述根据每个处理器核心的占用率,确定分配给每个处理器核心的同一并行任务的任务数量,包括:
计算每个处理器核心的空闲参数,其中,所述空闲参数为每个处理器核心的空闲率和所有处理器核心的总空闲率的比值;
根据每个处理器核心的空闲参数和同一并行任务的任务总数量,确定分配给每个处理器核心的同一并行任务的任务数量。
在本发明较佳实施例中,所述服务器中还配置有每个并行任务的任务级别与处理器核心的频率之间的对应关系,所述将所述同一并行任务按照确定的任务数量分别分配给对应的处理器核心进行并行处理,包括:
将所述同一并行任务按照确定的任务数量分别分配给对应的处理器核心;
获取所述并行任务的任务级别;
根据所述任务级别对应调整所述处理器核心的频率,并控制每个所述处理器核心基于调整后的频率对分配的所述并行任务进行处理。
本发明较佳实施例还提供一种负载能力优化装置,应用于服务器,所述装置包括:
获得模块,用于获得所有游戏玩家的待处理任务;
拆分模块,用于基于预设规则将所述待处理任务拆分为串行任务和并行任务;
任务处理模块,用于按照所述待处理任务的处理顺序,将每个串行任务通过主线程进行串行处理,将同一并行任务分配到所述服务器的各个处理器核心上进行并行处理,并将并行处理后的任务数据串行应用于下一处理顺序的串行任务中。
本发明较佳实施例还提供一种服务器,所述服务器包括:
存储介质;
处理器;以及
负载能力优化装置,所述装置存储于所述存储介质中并包括由所述处理器执行的软件功能模块,所述装置包括:
获得模块,用于获得所有游戏玩家的待处理任务;
拆分模块,用于基于预设规则将所述待处理任务拆分为串行任务和并行任务;
任务处理模块,用于按照所述待处理任务的处理顺序,将每个串行任务通过主线程进行串行处理,将同一并行任务分配到所述服务器的各个处理器核心上进行并行处理,并将并行处理后的任务数据串行应用于下一处理顺序的串行任务中。
本发明较佳实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现上述的负载能力优化方法。
相对于现有技术而言,本发明具有以下有益效果:
本发明实施例提供一种负载能力优化方法、装置、服务器及可读存储介质,在游戏运行过程中,通过基于预设规则将所有游戏玩家的待处理任务拆分为串行任务和并行任务,然后按照所述待处理任务的处理顺序,将每个串行任务通过主线程进行串行处理,将同一并行任务分配到所述服务器的各个处理器核心上进行并行处理,并将并行处理后的任务数据串行应用于下一处理顺序的串行任务中。由此,通过区分待处理任务的并发可能性,将待处理任务拆分为并行任务和串行任务,从而将拆分出的并行任务进行并行计算,充分发挥多核处理器的优点,有效提高服务器的负载能力,从而承担更多的在线玩家。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
图1为本发明较佳实施例提供的负载能力优化方法的一种流程示意图;
图2为图1中所示的步骤S220包括的各个子步骤的一种流程示意图;
图3为图1中所示的步骤S230包括的各个子步骤的一种流程示意图;
图4为本发明较佳实施例提供的负载能力优化装置的一种功能模块图;
图5为本发明较佳实施例提供的服务器的一种结构示意框图。
图标:100-服务器;110-总线;120-处理器;130-存储介质;140-总线接口;150-网络适配器;160-用户接口;200-负载能力优化装置;210-获得模块;220-拆分模块;230-任务处理模块。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
由于目前游戏的主要逻辑承载在一个进程内的主线程内,玩家的全部数据和全部逻辑运算都由一个线程承载,数据访问方便,但是受硬件性能所限制,随着玩家数量的提高,数据量和计算量都急剧上升,但是由于设计的原因无法突破硬件极限,很难继续承担更多的在线玩家。
目前并行编程已经成为提高效率的一项关键技术之一,但是经发明人研究发现,如果采用多进程方法将游戏逻辑分布到若干个进程中,由于不同的计算内容(例如,待处理任务)由不同的进程承担,使得将玩家的游戏内容分块,互相之间访问复杂,细分粒度要求高,同时针对单一的负载能力要求最高的服务器核心模块依然无法提高负载能力。
鉴于上述问题,本申请发明人提出下述方法,该方法通过区分待处理任务的并发可能性,将待处理任务拆分为并行任务和串行任务,从而将拆分出的并行任务进行并行计算,充分发挥多核处理器的优点,有效提高服务器的负载能力,从而承担更多的在线玩家。下面结合附图,对本发明实施例作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,为本发明较佳实施例提供的负载能力优化方法的一种流程示意图。所应说明的是,本发明实施例提供的负载能力优化方法不以图1及以下所述的具体顺序为限制。所述方法的具体流程如下:
步骤S210,获得所有游戏玩家的待处理任务。
本实施例中,所述待处理任务可以为游戏玩家的行为步骤,例如,以游戏中判断游戏玩家死亡行为为例,游戏玩家的行为步骤可包括位置登记表A、新位置计算B、伤害计算C、死亡判断D四个步骤,每个步骤也即一个待处理任务。
步骤S220,基于预设规则将所述待处理任务拆分为串行任务和并行任务。
本实施例中,所述串行任务可以理解为该任务只能按照任务先后顺序进行处理,所述并行任务可以理解为该任务可以与同一并行任务同时进行处理。作为一种实施方式,所述待处理任务的拆分方式请参阅图2,所述步骤S220可以进一步包括以下子步骤:
子步骤S221,获取每个待处理任务的处理策略。
本实施例中,在步骤S220之前预先配置有每个游戏任务的处理策略,所述处理策略可以包括并行处理策略和串行处理策略。所述并行处理策略用于表征该游戏任务只与该游戏玩家上个处理顺序的游戏任务相关,也即同一游戏任务的游戏玩家之间的行为是独立不干扰的,所述串行处理策略用于表征该游戏任务与其它玩家的游戏任务相关,也即同一游戏任务的游戏玩家之间的行为是互相关联的。
子步骤S222,根据所述处理策略将所述待处理任务拆分为串行任务和并行任务。
本实施例中,如果查找到的某个待处理任务的处理策略为并行处理策略,则将该待处理任务确定为并行任务,相应地,如果查找到的某个待处理任务的处理策略为串行处理策略,则将该待处理任务确定为串行任务。例如,对于位置登记表A、新位置计算B、伤害计算C、死亡判断D这四个待处理任务来说,查找到位置登记表A和死亡判断D的处理策略为串行处理策略,新位置计算B、伤害计算C的处理策略为并行处理策略,那么则将位置登记表A和死亡判断D确定为串行处理策略,将新位置计算B、伤害计算C确定为并行处理策略。
步骤S230,按照所述待处理任务的处理顺序,将每个串行任务通过主线程进行串行处理,将同一并行任务分配到所述服务器100的各个处理器核心上进行并行处理,并将并行处理后的任务数据串行应用于下一处理顺序的串行任务中。
本实施例中,针对每个串行任务,通过主线程进行独立处理,针对同一并行任务,可以分配到各个处理器核心上进行并行处理,然后将并行处理后的任务数据串行应用于下一处理顺序的串行任务中。例如,所述待处理任务的处理顺序依次为位置登记表A、新位置计算B、伤害计算C、死亡判断D,由于位置登记表A和死亡判断D为串行任务,新位置计算B、伤害计算C为并行任务,因此首先通过主线程对位置登记表A这个步骤进行独立处理,然后将负载最重的并行任务新位置计算B、伤害计算C进行并行多核处理,可以将然后将处理后的伤害计算C步骤之后的全部数据归拢统一应用于死亡判断D,从而来判定是否玩家真正死亡。
基于上述步骤,通过区分待处理任务的并发可能性,将待处理任务拆分为并行任务和串行任务,从而将拆分出的并行任务进行并行计算,充分发挥多核处理器的优点,有效提高服务器100的负载能力,从而承担更多的在线玩家。
在多核处理过程中,如果在线玩家越来越多,对于每个处理器核心来说,如何为每个处理器核心合理分配并行任务使得处理效率更加优化,是亟待解决的技术问题。经发明人长期研究提出下述方法以提高多核处理过程中的处理效率。
请参阅图3,所述步骤S230还可以包括以下子步骤:
子步骤S231,获取各个处理器核心的空闲率。
本实施例中,每个处理器核心的空闲率可以理解为除去占用率剩下的可使用资源,处理器核心的占用率为运行的程序占用的CPU资源,表示在某个时间点的运行程序的情况。占用率越高,表面在这个时间上运行了很多程序,反之较少。目前处理器核心都是分时间片使用的:比如A进程占用10ms,然后B进程占用30ms,然后空闲60ms,再又是A进程占10ms,B进程占30ms,空闲60ms。如果在一段时间内都是如此,那么这段时间内的占用率为40%,也即空闲率为60%。
子步骤S232,根据每个处理器核心的空闲率,确定分配给每个处理器核心的同一并行任务的任务数量。
作为一种实施方式,首先计算每个处理器核心的空闲参数,所述空闲参数为每个处理器核心的空闲率和所有处理器核心的总空闲率的比值,然后根据每个处理器核心的空闲参数和同一并行任务的任务总数量,确定分配给每个处理器核心的同一并行任务的任务数量。例如,一共有处理器核心X1,处理器核心X2,处理器核心X3以及处理器核心X4,处理器核心X1的空闲率为40%,处理器核心X2的空闲率为60%,处理器核心X3的空闲率为70%,处理器核心X4的空闲率为30%,那么总空闲率则为200%,所述处理器核心X1的空闲参数为0.2,所述处理器核心X2的空闲参数为0.3,所述处理器核心X3的空闲参数为0.35,所述处理器核心X4的空闲参数为0.15。如果同一并行任务,例如新位置计算B、伤害计算C一共有100个,那么分配给所述处理器核心X1的任务数量为20,分配给所述处理器核心X2的任务数量为30,分配给所述处理器核心X3的任务数量为35,分配给所述处理器核心X4的任务数量为15。
子步骤S233,将所述同一并行任务按照确定的任务数量分别分配给对应的处理器核心进行并行处理。
作为一种实施方式,还可以预先配置每个并行任务的任务级别与处理器核心的频率之间的对应关系,在将所述同一并行任务按照确定的任务数量分别分配给对应的处理器核心之后,获取所述并行任务的任务级别,然后根据所述任务级别对应调整所述处理器核心的频率,并控制每个所述处理器核心基于调整后的频率对分配的所述并行任务进行处理。例如,将并行任务新位置计算B的任务优先级配置为第一优先级,将伤害计算C的任务优先级配置为第二优先级,第一优先级对应的处理器核心的频率为100%,第二优先级对应的频率为80%,那么当新位置计算B被分配在某个处理器核心上时,该处理器核心以100%的频率全力参与计算,保证新位置计算B高效运行。而伤害计算C被分配在某个处理器核心上,该处理器核心以80%的频率参与计算,在计算的同时能够实现能耗的减少。
基于上述步骤,能够充分利用多核优势,为每个处理器核心合理分配并行任务使得处理效率更加优化,进一步改善了游戏体验,从而能够承担更多的在线游戏玩家。
进一步地,请参阅图4,本发明较佳实施例还提供一种负载能力优化装置200,所述装置可以包括:
获得模块210,用于获得所有游戏玩家的待处理任务。
拆分模块220,用于基于预设规则将所述待处理任务拆分为串行任务和并行任务。
任务处理模块230,用于按照所述待处理任务的处理顺序,将每个串行任务通过主线程进行串行处理,将同一并行任务分配到所述服务器100的各个处理器核心上进行并行处理,并将并行处理后的任务数据串行应用于下一处理顺序的串行任务中。
作为一种实施方式,所述服务器100中预先配置有每个游戏任务的处理策略,所述处理策略包括并行处理策略和串行处理策略,其中,所述并行处理策略表征该游戏任务只与该游戏玩家上个处理顺序的游戏任务相关,所述串行处理策略表征该游戏任务与其它玩家的游戏任务相关。
所述拆分模块220,还可以用于获取每个待处理任务的处理策略,并根据所述处理策略将所述待处理任务拆分为串行任务和并行任务。
作为一种实施方式,所述任务处理模块230,还可以用于获取各个处理器核心的空闲率,根据每个处理器核心的空闲率,确定分配给每个处理器核心的同一并行任务的任务数量,并将所述同一并行任务按照确定的任务数量分别分配给对应的处理器核心进行并行处理。
可以理解的是,本实施例中的各功能模块的具体操作方法可参照上述方法实施例中相应步骤的详细描述,在此不再重复赘述。
进一步地,请参阅图5,为本发明实施较佳实施例提供的服务器100的一种结构示意框图。如图5所示,服务器100可以由总线110作一般性的总线体系结构来实现。根据服务器100的具体应用和整体设计约束条件,总线110可以包括任意数量的互连总线和桥接。总线110将各种电路连接在一起,这些电路包括处理器120、存储介质130和总线接口140。可选地,服务器100可以使用总线接口140将网络适配器150等经由总线110连接。网络适配器150可用于实现服务器100中物理层的信号处理功能,并通过天线实现射频信号的发送和接收。用户接口160可以连接外部设备,例如:键盘、显示器、鼠标或者操纵杆等。总线110还可以连接各种其它电路,如定时源、外围设备、电压调节器或者功率管理电路等,这些电路是本领域所熟知的,因此不再详述。
可以替换的,服务器100也可配置成通用处理系统,例如通称为芯片,该通用处理系统包括:提供处理功能的一个或多个微处理器,以及提供存储介质130的至少一部分的外部存储器,所有这些都通过外部总线体系结构与其它支持电路连接在一起。
可替换的,服务器100可以使用下述来实现:具有处理器120、总线接口140、用户接口160的ASIC(专用集成电路);以及集成在单个芯片中的存储介质130的至少一部分,或者,服务器100可以使用下述来实现:一个或多个FPGA(现场可编程门阵列)、PLD(可编程逻辑器件)、控制器、状态机、门逻辑、分立硬件部件、任何其它适合的电路、或者能够执行本发明通篇所描述的各种功能的电路的任意组合。
其中,处理器120负责管理总线110和一般处理(包括执行存储在存储介质130上的软件)。处理器120可以使用一个或多个通用处理器和/或专用处理器来实现。处理器120的例子包括微处理器、微控制器、DSP处理器和能够执行软件的其它电路。应当将软件广义地解释为表示指令、数据或其任意组合,而不论是将其称作为软件、固件、中间件、微代码、硬件描述语言还是其它。
在图5中存储介质130被示为与处理器120分离,然而,本领域技术人员很容易明白,存储介质130或其任意部分可位于服务器100之外。举例来说,存储介质130可以包括传输线、用数据调制的载波波形、和/或与无线节点分离开的计算机制品,这些介质均可以由处理器120通过总线接口140来访问。可替换地,存储介质130或其任意部分可以集成到处理器120中,例如,可以是高速缓存和/或通用寄存器。
所述处理器120可执行上述实施例,具体地,所述存储介质130中可以存储有所述负载能力优化装置200,所述处理器120可以用于执行所述负载能力优化装置200。
综上所述,本发明实施例提供一种负载能力优化方法、装置、服务器100及可读存储介质,在游戏运行过程中,通过基于预设规则将所有游戏玩家的待处理任务拆分为串行任务和并行任务,然后按照所述待处理任务的处理顺序,将每个串行任务通过主线程进行串行处理,将同一并行任务分配到所述服务器100的各个处理器核心上进行并行处理,并将并行处理后的任务数据串行应用于下一处理顺序的串行任务中。由此,通过区分待处理任务的并发可能性,将待处理任务拆分为并行任务和串行任务,从而将拆分出的并行任务进行并行计算,充分发挥多核处理器的优点,有效提高服务器100的负载能力,从而承担更多的在线玩家。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
可以替换的,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的电子设备、服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,术语"包括"、"包含"或者其任何其它变体意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其它的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (10)
1.一种负载能力优化方法,应用于服务器,其特征在于,所述方法包括:
获得所有游戏玩家的待处理任务;
基于预设规则将所述待处理任务拆分为串行任务和并行任务;
按照所述待处理任务的处理顺序,将每个串行任务通过主线程进行串行处理,将同一并行任务分配到所述服务器的各个处理器核心上进行并行处理,并将并行处理后的任务数据串行应用于下一处理顺序的串行任务中。
2.根据权利要求1所述的负载能力优化方法,其特征在于,所述服务器中预先配置有每个游戏任务的处理策略,所述处理策略包括并行处理策略和串行处理策略,其中,所述并行处理策略表征该游戏任务只与该游戏玩家上个处理顺序的游戏任务相关,所述串行处理策略表征该游戏任务与其它玩家的游戏任务相关,所述基于预设规则将所述待处理任务拆分为串行任务和并行任务,包括:
获取每个待处理任务的处理策略;
根据所述处理策略将所述待处理任务拆分为串行任务和并行任务。
3.根据权利要求1所述的负载能力优化方法,其特征在于,所述将同一并行任务分配到所述服务器的各个处理器核心上进行并行处理,包括:
获取各个处理器核心的空闲率;
根据每个处理器核心的空闲率,确定分配给每个处理器核心的同一并行任务的任务数量;
将所述同一并行任务按照确定的任务数量分别分配给对应的处理器核心进行并行处理。
4.根据权利要求3所述的负载能力优化方法,其特征在于,所述根据每个处理器核心的占用率,确定分配给每个处理器核心的同一并行任务的任务数量,包括:
计算每个处理器核心的空闲参数,其中,所述空闲参数为每个处理器核心的空闲率和所有处理器核心的总空闲率的比值;
根据每个处理器核心的空闲参数和同一并行任务的任务总数量,确定分配给每个处理器核心的同一并行任务的任务数量。
5.根据权利要求3所述的负载能力优化方法,其特征在于,所述服务器中还配置有每个并行任务的任务级别与处理器核心的频率之间的对应关系,所述将所述同一并行任务按照确定的任务数量分别分配给对应的处理器核心进行并行处理,包括:
将所述同一并行任务按照确定的任务数量分别分配给对应的处理器核心;
获取所述并行任务的任务级别;
根据所述任务级别对应调整所述处理器核心的频率,并控制每个所述处理器核心基于调整后的频率对分配的所述并行任务进行处理。
6.一种负载能力优化装置,应用于服务器,其特征在于,所述装置包括:
获得模块,用于获得所有游戏玩家的待处理任务;
拆分模块,用于基于预设规则将所述待处理任务拆分为串行任务和并行任务;
任务处理模块,用于按照所述待处理任务的处理顺序,将每个串行任务通过主线程进行串行处理,将同一并行任务分配到所述服务器的各个处理器核心上进行并行处理,并将并行处理后的任务数据串行应用于下一处理顺序的串行任务中。
7.根据权利要求6所述的负载能力优化装置,其特征在于,所述服务器中预先配置有每个游戏任务的处理策略,所述处理策略包括并行处理策略和串行处理策略,其中,所述并行处理策略表征该游戏任务只与该游戏玩家上个处理顺序的游戏任务相关,所述串行处理策略表征该游戏任务与其它玩家的游戏任务相关;
所述拆分模块,还用于获取每个待处理任务的处理策略,并根据所述处理策略将所述待处理任务拆分为串行任务和并行任务。
8.根据权利要求6所述的负载能力优化装置,其特征在于:
所述任务处理模块,还用于获取各个处理器核心的空闲率,根据每个处理器核心的空闲率,确定分配给每个处理器核心的同一并行任务的任务数量,并将所述同一并行任务按照确定的任务数量分别分配给对应的处理器核心进行并行处理。
9.一种服务器,其特征在于,所述服务器包括:
存储介质;
处理器;以及
负载能力优化装置,所述装置存储于所述存储介质中并包括由所述处理器执行的软件功能模块,所述装置包括:
获得模块,用于获得所有游戏玩家的待处理任务;
拆分模块,用于基于预设规则将所述待处理任务拆分为串行任务和并行任务;
任务处理模块,用于按照所述待处理任务的处理顺序,将每个串行任务通过主线程进行串行处理,将同一并行任务分配到所述服务器的各个处理器核心上进行并行处理,并将并行处理后的任务数据串行应用于下一处理顺序的串行任务中。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现权利要求1-5中任意一项所述的负载能力优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711277306.1A CN108170526B (zh) | 2017-12-06 | 2017-12-06 | 负载能力优化方法、装置、服务器及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711277306.1A CN108170526B (zh) | 2017-12-06 | 2017-12-06 | 负载能力优化方法、装置、服务器及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108170526A true CN108170526A (zh) | 2018-06-15 |
CN108170526B CN108170526B (zh) | 2021-04-20 |
Family
ID=62525331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711277306.1A Active CN108170526B (zh) | 2017-12-06 | 2017-12-06 | 负载能力优化方法、装置、服务器及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108170526B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569118A (zh) * | 2019-08-29 | 2019-12-13 | 贝壳技术有限公司 | 任务调度方法、装置、电子设备及存储介质 |
CN111381960A (zh) * | 2018-12-29 | 2020-07-07 | 中兴通讯股份有限公司 | 终端任务的处理方法、装置、存储介质及电子装置 |
CN111625493A (zh) * | 2020-05-29 | 2020-09-04 | 厘壮信息科技(苏州)有限公司 | 一种高性能并行计算加速器结构 |
CN112068965A (zh) * | 2020-09-23 | 2020-12-11 | Oppo广东移动通信有限公司 | 数据处理方法、装置、电子设备和可读存储介质 |
CN112148454A (zh) * | 2020-09-29 | 2020-12-29 | 行星算力(深圳)科技有限公司 | 一种支持串行和并行的边缘计算方法及电子设备 |
CN112748961A (zh) * | 2019-10-30 | 2021-05-04 | 腾讯科技(深圳)有限公司 | 启动任务的执行方法和装置 |
CN113449142A (zh) * | 2021-06-30 | 2021-09-28 | 北京百度网讯科技有限公司 | 信息处理方法及装置、电子设备、存储介质及产品 |
CN114116068A (zh) * | 2021-12-02 | 2022-03-01 | 重庆紫光华山智安科技有限公司 | 服务启动优化方法、装置、电子设备和可读存储介质 |
CN115686873A (zh) * | 2022-12-30 | 2023-02-03 | 摩尔线程智能科技(北京)有限责任公司 | 用于多核系统的核心调度方法和装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101219278A (zh) * | 2007-01-09 | 2008-07-16 | 株式会社万代南梦宫游戏 | 游戏装置、服务器装置、游戏进行控制方法以及信息存储介质 |
CN101551758A (zh) * | 2009-05-13 | 2009-10-07 | 中兴通讯股份有限公司 | 一种实现设备管理任务并行工作的系统和方法 |
JP2012252413A (ja) * | 2011-05-31 | 2012-12-20 | Toshiba Corp | 情報処理装置、情報処理方法及び制御プログラム |
US20130024872A1 (en) * | 2010-09-02 | 2013-01-24 | International Business Machines Corporation | Scheduling a Parallel Job in a System of Virtual Containers |
CN103279445A (zh) * | 2012-09-26 | 2013-09-04 | 上海中科高等研究院 | 运算任务的计算方法及超算系统 |
CN103729241A (zh) * | 2013-12-12 | 2014-04-16 | 华中科技大学 | 一种多核环境下OpenMP任务并行的优化方法 |
CN104216684A (zh) * | 2013-06-04 | 2014-12-17 | 阿里巴巴集团控股有限公司 | 一种多核并行系统及其数据处理方法 |
CN104952096A (zh) * | 2014-03-31 | 2015-09-30 | 中国电信股份有限公司 | Cpu和gpu混合云渲染方法、装置和系统 |
CN105892996A (zh) * | 2015-12-14 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 一种批量数据处理的流水线作业方法及装置 |
CN106600521A (zh) * | 2016-11-30 | 2017-04-26 | 宇龙计算机通信科技(深圳)有限公司 | 一种图像处理方法及终端设备 |
CN106776775A (zh) * | 2016-11-11 | 2017-05-31 | 北京奇虎科技有限公司 | 并发主从同步方法及装置 |
CN106776015A (zh) * | 2016-11-29 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种并行程序任务处理方法及其装置 |
CN107315629A (zh) * | 2017-06-14 | 2017-11-03 | 北京小米移动软件有限公司 | 任务处理方法、装置及存储介质 |
-
2017
- 2017-12-06 CN CN201711277306.1A patent/CN108170526B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101219278A (zh) * | 2007-01-09 | 2008-07-16 | 株式会社万代南梦宫游戏 | 游戏装置、服务器装置、游戏进行控制方法以及信息存储介质 |
CN101551758A (zh) * | 2009-05-13 | 2009-10-07 | 中兴通讯股份有限公司 | 一种实现设备管理任务并行工作的系统和方法 |
US20130024872A1 (en) * | 2010-09-02 | 2013-01-24 | International Business Machines Corporation | Scheduling a Parallel Job in a System of Virtual Containers |
JP2012252413A (ja) * | 2011-05-31 | 2012-12-20 | Toshiba Corp | 情報処理装置、情報処理方法及び制御プログラム |
CN103279445A (zh) * | 2012-09-26 | 2013-09-04 | 上海中科高等研究院 | 运算任务的计算方法及超算系统 |
CN104216684A (zh) * | 2013-06-04 | 2014-12-17 | 阿里巴巴集团控股有限公司 | 一种多核并行系统及其数据处理方法 |
CN103729241A (zh) * | 2013-12-12 | 2014-04-16 | 华中科技大学 | 一种多核环境下OpenMP任务并行的优化方法 |
CN104952096A (zh) * | 2014-03-31 | 2015-09-30 | 中国电信股份有限公司 | Cpu和gpu混合云渲染方法、装置和系统 |
CN105892996A (zh) * | 2015-12-14 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 一种批量数据处理的流水线作业方法及装置 |
CN106776775A (zh) * | 2016-11-11 | 2017-05-31 | 北京奇虎科技有限公司 | 并发主从同步方法及装置 |
CN106776015A (zh) * | 2016-11-29 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种并行程序任务处理方法及其装置 |
CN106600521A (zh) * | 2016-11-30 | 2017-04-26 | 宇龙计算机通信科技(深圳)有限公司 | 一种图像处理方法及终端设备 |
CN107315629A (zh) * | 2017-06-14 | 2017-11-03 | 北京小米移动软件有限公司 | 任务处理方法、装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
沈莉 等: "一种CPU+GPU资源调度系统的研究", 《2010年全国高性能计算学术年会(HPC CHINA2010)》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111381960A (zh) * | 2018-12-29 | 2020-07-07 | 中兴通讯股份有限公司 | 终端任务的处理方法、装置、存储介质及电子装置 |
CN110569118A (zh) * | 2019-08-29 | 2019-12-13 | 贝壳技术有限公司 | 任务调度方法、装置、电子设备及存储介质 |
CN112748961A (zh) * | 2019-10-30 | 2021-05-04 | 腾讯科技(深圳)有限公司 | 启动任务的执行方法和装置 |
CN111625493A (zh) * | 2020-05-29 | 2020-09-04 | 厘壮信息科技(苏州)有限公司 | 一种高性能并行计算加速器结构 |
CN112068965A (zh) * | 2020-09-23 | 2020-12-11 | Oppo广东移动通信有限公司 | 数据处理方法、装置、电子设备和可读存储介质 |
CN112148454A (zh) * | 2020-09-29 | 2020-12-29 | 行星算力(深圳)科技有限公司 | 一种支持串行和并行的边缘计算方法及电子设备 |
CN113449142A (zh) * | 2021-06-30 | 2021-09-28 | 北京百度网讯科技有限公司 | 信息处理方法及装置、电子设备、存储介质及产品 |
CN114116068A (zh) * | 2021-12-02 | 2022-03-01 | 重庆紫光华山智安科技有限公司 | 服务启动优化方法、装置、电子设备和可读存储介质 |
CN114116068B (zh) * | 2021-12-02 | 2023-06-02 | 重庆紫光华山智安科技有限公司 | 服务启动优化方法、装置、电子设备和可读存储介质 |
CN115686873A (zh) * | 2022-12-30 | 2023-02-03 | 摩尔线程智能科技(北京)有限责任公司 | 用于多核系统的核心调度方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108170526B (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108170526A (zh) | 负载能力优化方法、装置、服务器及可读存储介质 | |
CN108549583A (zh) | 大数据处理方法、装置、服务器及可读存储介质 | |
CN104778083B (zh) | 异构多核可重构计算平台上任务调度的方法和装置 | |
CN103699334B (zh) | 用于管理虚拟机磁盘的方法和系统 | |
US11351463B2 (en) | System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations | |
CN106385329B (zh) | 资源池的处理方法、装置和设备 | |
US20180173538A1 (en) | Systems, methods and devices for dynamic power management of devices using game theory | |
CN109791500A (zh) | 虚拟机实例和客户可编程逻辑之间的中间主机集成电路 | |
KR20170100487A (ko) | 총체적 글로벌 성능 및 전력 관리 | |
CN105677000B (zh) | 动态电压频率调整的系统及方法 | |
CN107239336A (zh) | 一种实现任务调度的方法及装置 | |
CN109684074A (zh) | 物理机资源分配方法及终端设备 | |
CN109960587A (zh) | 超融合云计算系统的存储资源分配方法和装置 | |
CN107952241A (zh) | 渲染控制方法、装置及可读存储介质 | |
CN110175281A (zh) | 一种用户数据处理、交互方法、装置及系统 | |
CN111176792A (zh) | 一种资源调度方法、装置及相关设备 | |
Liu et al. | Automatic construction of parallel portfolios via explicit instance grouping | |
CN108364025A (zh) | 基于深度学习的胃镜图像识别方法、装置、设备及介质 | |
CN104750538A (zh) | 用于为目标应用提供虚拟存储池的方法和系统 | |
CN109529329A (zh) | 游戏特效处理方法及装置 | |
WO2020108536A1 (zh) | 一种虚拟网络资源分配方法、系统及电子设备 | |
US20170083375A1 (en) | Thread performance optimization | |
CN108153877A (zh) | 数据字典展示方法、装置、终端设备及存储介质 | |
Ying et al. | Raven: Scheduling virtual machine migration during datacenter upgrades with reinforcement learning | |
WO2022205781A1 (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 |