一种高效利用服务器资源的方法和服务器管理系统与流程

文档序号:12668259阅读:349来源:国知局
一种高效利用服务器资源的方法和服务器管理系统与流程

本申请涉及服务器技术领域,尤其涉及一种高效利用服务器资源的方法和服务器管理系统。



背景技术:

在生活节奏越来越快的今天,轻量级游戏得到了人们的广泛追捧,如IO游戏等。早期的轻量级游戏多是在短时间内即可完成一局游戏并判断胜负以获取积分(例如经验、金钱、资源、奖励)等。随着近年来轻量级游戏的飞速发展,为使游戏更具有可玩性和互动性,许多轻量级游戏被设计成允许更多的玩家加入同一场游戏和重复进入,同时较大程度上延长了游戏时间。

轻量级游戏的服务器系统通常是不需要占用太多的服务器的资源;因此,游戏开发者通常会在一台物理服务器虚拟出几台设置几百台相互隔离的虚拟服务器,从而提高资源的利用率。然而,随着加入的玩家越多以及游戏时间越长,轻量级游戏服务器的数据量也越来越大,这对服务器的性能也越来越高。但是,物理服务器的性能是有上限的。如果一个游戏服务器数据量过大,即使采用虚拟服务器技术,一台物理服务器上能够虚拟出的服务器系统也是有限的。

为更加高效地利用服务器资源,无论是采用虚拟服务器还是直接采用物理服务器,在一局游戏结束后,便会关闭该局游戏服务器,腾出服务器资源用于部署新的游戏的服务器。尤其是在轻量级游戏服务器的管理上,关闭当前局游戏服务器,然后利用其占用的服务器资源部署新一局游戏的服务器,是本领域的惯常手段。以游戏《Trivian》为例,如图1所示,一局游戏结束时,该局游戏的服务器便会被关闭,在对其数据备份保存后,腾出其占用的服务器资源以创建新一局游戏的服务器。

然而,上述过程复杂,操作繁琐,且线下操作(如图1中101所示)易出错,耗时长,甚至一些情形下,还会使得硬件设备不能正常提供服务,造成浪费。尤其,游戏服务器数据量越大,其创建过程越长;随着轻量级游戏支持的玩家越多、玩法越复杂,其数据量自然不断增大。一些轻量级游戏的服务器创建过程甚至需要耗时达七、八个小时。显然,上述情形严重影响了游戏运营效率。那么,提供一套技术方案,用于实现待关闭的当前局游戏服务器和即将部署的新一局游戏服务器之间快速切换,实现后者的快速部署,以达到高效利用服务器资源的目的,就成为了游戏开发者和运营者亟待解决的技术问题。



技术实现要素:

有鉴于此,本申请目的在于提供一种高效利用服务器资源的方法和服务器管理系统,以实现待关闭的当前局游戏服务器和即将部署的新一局游戏服务器之间的快速切换,实现后者的快速部署,进而高效利用有限的服务器资源,在降低运营成本的同时,也为玩家提供更流畅、更高效、更优质的游戏产品和服务。

故,本申请公开一种高效利用服务器资源的方法,该方法包括:

在服务器逻辑中创建线程池,所述线程池中包括至少两个工作线程组(每个工作线程组包括不少于一条的工作线程),其中一个线程组为主线程组,用于执行当前局游戏服务器的逻辑,另一个线程组为辅助线程组,用于待命的新一局游戏服务器的创建;

所述主线程组,创建当前局游戏服务器,在服务器的内存中创建全部的当前局游戏的地图及地图元素数据;上述数据会被分配到服务器内存中的静态存储区;

所述辅助线程组,创建新一局游戏的服务器,仅在服务器内存中创建部分的新一局游戏的地图及地图元素数据;上述数据也会被分配到服务器内存的静态存储区;

游戏开始时,所述主线程组占用大部分服务器资源,所述辅助线程组休眠;

随着游戏进行,所述主线程组将访问频率低的地图及地图元素数据移出服务器内存的静态存储区,并将其移入服务器数据库;游戏开发者以预设算法确定访问频率低的数据;

当服务器资源空闲时(例如所述主线程组暂时休眠,释放服务器资源),所述辅助线程组被唤醒;唤醒后的辅助线程组利用空出的静态存储区继续创建余下的新一局游戏的地图及地图元素数据;

当前局游戏结束时,所述主线程组关闭,所述辅助线程组成为新一局游戏服务器的主线程组,进而完成新一局游戏服务器的创建;与此同时,在服务器逻辑中还可以创建新的辅助线程组,作为新一局游戏服务器的辅助线程组,以实现自主循环。

其中,在所述辅助线程组中创建校验线程,时刻校验所述主线程组执行的当前局游戏服务器的逻辑是否临近结束;若是,则让出部分服务器资源给所述辅助线程,保证其能够及时完成新一局游戏服务器的创建。

其中,当服务器的内存资源严重不足时,所述辅助线程组利用服务器的硬盘资源创建虚拟内存,并在所述虚拟内存中创建新一局游戏的地图及地图元素数据;当服务器内存的静态存储区空出时,再将上述数据移入。所述虚拟内存采用段页式调度管理,该方式不仅调入操作简单,还能消除内存零头,易于程序和数据的保护。

此外,所述移出服务器内存静态存储区的地图及地图元素数据再次被请求访问时,所述主线程组将其他访问频率低的地图及地图元素数据从服务器内存的静态存储区移出至服务器数据库,并从服务器数据库中取回所述的被请求访问的地图及地图元素数据至空出的服务器内存静态存储区,以便提供访问。

本申请还公开一种高效利用资源的服务器管理系统,该系统包括:

逻辑单元、资源管理单元、服务器切换管理单元;其中,

所述逻辑单元包括主逻辑模块和辅助逻辑模块;

所述主逻辑模块,用于执行当前局游戏的服务器的逻辑;

所述辅助逻辑模块,用于待命的新一局游戏服务器的创建;

所述主逻辑模块创建当前局的游戏服务器,在服务器内存中创建全部的当前局游戏的地图及地图元素数据;上述数据会被分配到服务器内存的静态存储区;

所述辅助逻辑模块创建新一局游戏服务器,仅在服务器内存中创建部分的新一局游戏的地图及地图元素数据;上述数据也会被分配到服务器内存的静态存储区;

所述资源管理单元,用于在所述主逻辑模块和所述辅助逻辑模块间分配服务器资源;所述服务器资源包括服务器内存等;

游戏开始时,所述资源管理单元将服务器资源分配给所述主逻辑模块,所述辅助逻辑模块休眠;

随着游戏进行,所述主逻辑模块将访问频率低的地图及地图元素数据移出服务器内存的静态存储区,并将其移入服务器数据库;游戏开发者以预设算法确定访问频率低的数据;

当服务器资源空闲时(例如所述主逻辑模块暂时休眠,释放服务器资源),所述辅助逻辑模块被唤醒;所述资源管理单元将包括空出的静态存储区在内的服务器资源分配给唤醒后的辅助逻辑模块,所述辅助逻辑模块利用该资源继续创建余下的新一局游戏的地图及地图元素数据;

所述服务器切换管理单元,用于切换当前局游戏的服务器和待命的新一局游戏服务器;

当前局游戏结束时,所述服务器切换管理单元负责关闭所述主逻辑模块,同时使所述辅助逻辑模块成为新一局游戏服务器的主逻辑模块,进而完成新一局游戏服务器的创建;此外,在上述切换过程中,所述服务器切换管理单元还可以创建新的辅助逻辑模块,作为新一局游戏服务器的辅助逻辑模块,以实现自主循环。

其中,所述辅助逻辑模块设置校验子模块,时刻校验所述主逻辑模块执行的当前局游戏服务器的逻辑是否临近结束;若是,则通知所述主逻辑模块让出部分服务器资源给所述辅助逻辑模块,以保证后者能够及时完成新一局游戏服务器的创建。

其中,当服务器的内存资源严重不足时,所述辅助逻辑模块设置虚拟内存子模块,利用服务器的硬盘资源创建虚拟内存,以便所述辅助逻辑模块在其中创建新一局游戏的地图及地图元素数据;并在服务器内存的静态存储区空出时,移入上述数据。

此外,所述主逻辑模块设置数据调度管理子模块,用于调度数据库和服务器内存静态存储区中的当前局游戏的地图及地图元素数据,以满足访问需要;当移出服务器内存静态存储区的地图及地图元素数据再次被请求访问时,所述主逻辑模块的数据调度管理子模块将其他访问频率低的地图及地图元素数据移出服务器内存的静态存储区,移入服务器数据库,并从服务器数据库中取回所述的被请求访问的地图及地图元素数据。

有关本申请的技术特征和实际应用,兹配合附图及实施例详细说明如下。

附图说明

图1为现有技术中一种关闭当前局游戏服务器和重新部署新一局游戏服务器的方法的流程示意图;

图2为本申请实施例公开的一种高效利用服务器资源的方法的流程示意图;

图3为本申请实施例公开的一种高效利用资源的服务器管理系统的组成结构示意图。

具体实施方式

本申请公开的一种高效利用服务器资源的方法和服务器管理系统,应用于互联网游戏,尤其应用于沙盒大地图轻量级游戏的服务器的设计。该方法和服务器管理系统应用于互联网扫雷游戏、沙盒大地图的SLG游戏等,但不仅限于上述互联网游戏。

如图2所示,其为本申请的一部分实施例公开一种高效利用服务器资源的方法的流程示意图。图2中所示的方法,其具体流程为:

在服务器逻辑中创建线程池,所述线程池中包括至少两个工作线程组(每个工作线程组包括不少于一条的工作线程),其中一个线程组为主线程组,用于执行当前局游戏服务器的逻辑;以联网扫雷游戏为例,即排雷、标记等交互、运算;

另一个线程组为辅助线程组,用于待命的新一局游戏服务器的创建;其用于下一局游戏,以实现与当前游戏服务器的无缝衔接;

所述主线程组,创建当前局游戏服务器,在服务器的内存中创建全部的当前局游戏的地图及地图元素数据;上述数据会被分配到服务器内存中的静态存储区;

所述辅助线程组,创建新一局游戏的服务器,考虑到服务器内存大小的限制和在有限服务器资源上虚拟出更多游戏服务器的需要),故仅在服务器内存中创建部分的新一局游戏的地图及地图元素数据;上述数据也会被分配到服务器内存的静态存储区;

以扫雷游戏为例,其地图及地图元素数据即游戏中雷区地图的最小元素格的位置信息及埋雷信息(如是否有雷以及无雷时其周边地雷数量信息);

游戏开始时,所述主线程组占用大部分服务器资源,所述辅助线程组休眠;

随着游戏进行,所述主线程组将访问频率低的地图及地图元素数据移出服务器内存的静态存储区,并将其移入服务器数据库;游戏开发者以预设算法确定访问频率低的数据;以扫雷游戏为例,被扫过的雷区通常极少被访问,故该部分数据即可被视作访问频率低的数据(具体判定算法可以是以最近一段预设的时间内访问次数低于预设值来计算判定),由所述主线程组移出服务器内存的静态存储区,释放服务器资源;

当服务器资源空闲时(例如所述主线程组暂时休眠,释放服务器资源),所述辅助线程组被唤醒;唤醒后的辅助线程组利用空出的静态存储区继续创建余下的新一局游戏的地图及地图元素数据;

当前局游戏结束时,所述主线程组关闭,所述辅助线程组成为新一局游戏服务器的主线程组,进而完成新一局游戏服务器的创建,再进一步即直接启动该服务器,进行新一局游戏;与此同时,在服务器逻辑中还可以创建新的辅助线程组,作为新一局游戏服务器的辅助线程组,以实现自主循环。

其中,在所述辅助线程组中创建校验线程,时刻校验所述主线程组执行的当前局游戏服务器的逻辑是否临近结束;若是,则让出部分服务器资源给所述辅助线程,保证其能够及时完成新一局游戏服务器的创建。判断当前局游戏服务器的逻辑是否临近结束,可以视未被移除的地图及地图元素数据的情况而定。以扫雷游戏为例,当其未被移除的地图及地图元素数据百分比降低至预设值(如设定为5%),即可认为当前局游戏服务器的逻辑临近结束。

其中,当服务器的内存资源严重不足时,所述辅助线程组利用服务器的硬盘资源创建虚拟内存,并在所述虚拟内存中创建新一局游戏的地图及地图元素数据;当服务器内存的静态存储区空出时,再将上述数据移入。所述虚拟内存采用段页式调度管理,该方式不仅调入操作简单,还能消除内存零头,易于程序和数据的保护。

此外,所述移出服务器内存静态存储区的地图及地图元素数据再次被请求访问时,所述主线程组将其他访问频率低的地图及地图元素数据从服务器内存的静态存储区移出至服务器数据库,并从服务器数据库中取回所述的被请求访问的地图及地图元素数据至空出的服务器内存静态存储区,以便提供访问。

如图3所示,其为本申请的另一部分实施例公开的一种高效利用资源的服务器管理系统的组成结构示意图。图3中的服务器管理系统包括:逻辑单元301、资源管理单元302、服务器切换管理单元303;其中,

逻辑单元301包括主逻辑模块301a和辅助逻辑模块301b;

主逻辑模块301a,用于执行当前局游戏的服务器的逻辑;以联网扫雷游戏为例,即排雷、标记等交互、运算;

辅助逻辑模块301b,用于待命的新一局游戏服务器的创建;以便当前局游戏服务器关闭时即时开启;

所述主逻辑模块创建当前局的游戏服务器,在服务器内存中创建全部的当前局游戏的地图及地图元素数据;上述数据会被分配到服务器内存的静态存储区;

所述辅助逻辑模块创建新一局游戏服务器,仅在服务器内存中创建部分的新一局游戏的地图及地图元素数据;上述数据也会被分配到服务器内存的静态存储区;

以扫雷游戏为例,其地图及地图元素数据即游戏中雷区地图的最小元素格的位置信息及埋雷信息(如是否有雷以及无雷时其周边地雷数量信息);

资源管理单元302,用于在所述主逻辑模块和所述辅助逻辑模块间分配服务器资源;所述服务器资源包括服务器内存等;具体地,

游戏开始时,所述资源管理单元将大部分服务器资源分配给所述主逻辑模块,所述辅助逻辑模块休眠;

随着游戏进行,所述主逻辑模块将访问频率低的地图及地图元素数据移出服务器内存的静态存储区,并将其移入服务器数据库;游戏开发者以预设算法确定访问频率低的数据;以扫雷游戏为例,被扫过的雷区通常极少被访问,故该部分数据即可被所述主逻辑模块移出服务器内存的静态存储区,释放服务器资源;

当服务器资源空闲时,例如所述主逻辑模块暂时休眠,释放足够的服务器资源,所述辅助逻辑模块则会被唤醒;所述资源管理单元将包括空出的静态存储区在内的服务器资源分配给唤醒后的辅助逻辑模块,所述辅助逻辑模块利用该资源继续创建余下的新一局游戏的地图及地图元素数据;

服务器切换管理单元303,用于切换当前局游戏的服务器和待命的新一局游戏服务器;

当前局游戏结束时,所述服务器切换管理单元负责关闭所述主逻辑模块,同时使所述辅助逻辑模块成为新一局游戏服务器的主逻辑模块,进而完成新一局游戏服务器的创建。在当前局游戏结束、服务器关闭的同时,即可打开新一局游戏服务器,为玩家提供新一局的游戏,不需额外时间生成新服务器。

此外,在上述切换过程中,所述服务器切换管理单元还可以创建新的辅助逻辑模块,作为新一局游戏服务器的辅助逻辑模块,以实现切换过程的自主循环。

其中,所述辅助逻辑模块设置校验子模块,时刻校验所述主逻辑模块执行的当前局游戏服务器的逻辑是否临近结束;若是,则通知所述主逻辑模块让出部分服务器资源给所述辅助逻辑模块,以保证后者能够及时完成新一局游戏服务器的创建。判断当前局游戏服务器的逻辑是否临近结束,可以视未被移除的地图及地图元素数据的情况而定,以扫雷游戏为例,被扫过的雷区通常极少被访问,其数据被移出,如果未被移除的雷区数据低于预设值(例如设定为5%)时,即可认为当前局游戏服务器的逻辑临近结束。

其中,当服务器的内存资源严重不足时,所述辅助逻辑模块设置虚拟内存子模块,利用服务器的硬盘资源创建虚拟内存,以便所述辅助逻辑模块在其中创建新一局游戏的地图及地图元素数据;并在服务器内存的静态存储区空出时,移入上述数据。

此外,所述主逻辑模块设置数据调度管理子模块,用于调度数据库和服务器内存静态存储区中的当前局游戏的地图及地图元素数据,以满足访问需要;当移出服务器内存静态存储区的地图及地图元素数据再次被请求访问时,所述主逻辑模块将其他访问频率低的地图及地图元素数据移出服务器内存的静态存储区,移入服务器数据库,并从服务器数据库中取回所述的被请求访问的地图及地图元素数据。

上述实施例提供的高效利用服务器资源的方法和服务器管理系统,能够实现待关闭的当前局游戏服务器和即将部署的新一局游戏服务器之间的快速切换,以便无缝开启新一局游戏;进而高效利用服务器资源,在降低运营成本的同时,也为玩家提供更流畅、更高效、更优质的游戏产品和服务。

虽然本申请经前述实施例公开如上,但以上实施例并非用于限定本申请,任何本领域技术人员,在不脱离本申请的精神和范围内,作些许的更动与润饰,则仍在本申请欲保护范围内;因此,本申请的专利保护范围须视本说明书所附的权利要求书范围所界定者为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1