CN104618492B - 一种基于多个服务器的数据处理*** - Google Patents
一种基于多个服务器的数据处理*** Download PDFInfo
- Publication number
- CN104618492B CN104618492B CN201510072850.7A CN201510072850A CN104618492B CN 104618492 B CN104618492 B CN 104618492B CN 201510072850 A CN201510072850 A CN 201510072850A CN 104618492 B CN104618492 B CN 104618492B
- Authority
- CN
- China
- Prior art keywords
- server
- calculation server
- data processing
- processing request
- calculation
- 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.)
- Active
Links
Landscapes
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于多个服务器的数据处理***,通过管理服务器建立包含n个计算服务器的执行列表,在执行列表内为计算服务器依照数据处理能力进行排序,并赋予相应的基准分值,逐个分配数据处理请求时,依照计算服务器的当前分值从小到大进行分配,每当一个计算服务器被分配一个数据处理请求时,该计算服务器的当前分值为c为:c=b+1+n,b代表分配该数据处理请求之前的分值,从而将该计算服务器排到列表的最后一个位置,每当一个计算服务器完成了一个数据处理请求时,该计算服务器的当前分值c为:c=b‑1,则将该计算服务器向前排一个位置,从而实现按照计算服务器的实际数据处理能力分配任务,有效利用各服务器,最大限度发挥服务器的运算能力。
Description
技术领域
本发明涉及一种计算机领域,尤其涉及一种基于多个服务器的数据处理***。
背景技术
目前出现了越来越多的***平台,用于提供各种服务,如订餐,微博互动、订票或者生成app等,这就对用于支撑平台运转的数据处理***的数据处理能力提出了很高的要求。很多数据处理***都是借助于若干个服务器构建的,但如何有效利用所有服务器,最大限度的发挥所有服务器的运算能力,使运算能力差的服务器也能够在***内发挥作用,但不至于过度工作导致发生故障,这些都是需要解决的技术问题。
发明内容
针对上述技术问题,本发明设计开发了一种有效利用各服务器,最大限度发挥服务器的运算能力,降低服务器单机的故障率的基于多个服务器的数据处理***。
本发明提供的技术方案为:
一种基于多个服务器的数据处理***,包括:
n个计算服务器;
备用服务器;
管理服务器,其用于建立一个数据处理请求的队列,在该队列内数据处理请求是按管理服务器接收的时间排序的,管理服务器还用于建立一个包含n个计算服务器的执行列表,所述管理服务器同时向每个计算服务器发出n个测试数据处理请求,并记录每个计算服务器完成n个测试数据处理请求所消耗的测试时间,记为测试时间序列,依照所消耗的测试时间从少到多将n个计算服务器从上到下排序,记为初始排序,并为每个计算服务器赋予基准分值a,下一个计算服务器的基准分值为上一个计算服务器的基准分值加1;
其中,在所述管理服务器逐个分配数据处理请求时,按n个计算服务器的当前分值从小到大进行分配,每当一个计算服务器被分配了一个数据处理请求时,该计算服务器的当前分值c为:c=b+1+n,b代表分配该数据处理请求之前的分值,每当一个计算服务器完成了一个数据处理请求时,该计算服务器的当前分值c为:c=b-1;n个计算服务器按照当前分值从小到大排序;
当出现一个计算服务器的当前分值达到其基准分值的1.5倍时,则所述管理服务器启用一个备用服务器,并将该备用服务器暂时编入至执行列表的最上方的一个位置;所述管理服务器将队列中连续的n个数据处理请求全部分配给备用服务器,并记录备用服务器完成该n个数据处理请求所消耗的测试时间,将该测试时间***至测试时间序列中,使该测试时间的大小比上一个计算服务器的测试时间值大,而比下一个计算服务器的测试时间值小,从而确定备用服务器在初始排序中的位置,并为该备用服务器赋予相应的基准分值,该备用服务器的基准分值为上一个计算服务器的基准分值加0.1;将备用服务器的基准分值乘以1.5倍,换算成当前分值,将备用服务器记为计算服务器;从该n个数据处理请求之后的第1个数据处理请求开始,再按n+1个计算服务器的当前分值从小到大进行分配。
优选的是,所述的基于多个服务器的数据处理***中,所述管理服务器计算每个计算服务器的平均处理时间t,t=N/T,其中,N代表到当前时刻一个计算服务器所处理的数据处理请求,T为从一个计算服务器开始处理第一个数据处理请求到当前时刻的时长,并建立一个动态列表,该动态列表内依照计算服务器的平均处理时间从小到大排序;将该动态列表与执行列表的当前排序比较,当动态列表中存在20%~30%的计算服务器的排序与在执行列表中不一致,则将动态列表内的内容更新为新的执行列表,为新的执行列表内的每个计算服务器赋予基准分值,下一个计算服务器的基准分值为上一个计算服务器的基准分值加1,所述管理服务器重新按新的执行列表分配数据处理请求。
优选的是,所述的基于多个服务器的数据处理***中,当动态列表中存在20%的计算服务器的排序与在执行列表中不一致,则将动态列表内的内容更新为新的执行列表。
优选的是,所述的基于多个服务器的数据处理***中,n取值为10,列表内最上方的一个计算服务器的基准分值取值为101。
本发明所述的基于多个服务器的数据处理***通过管理服务器建立了一个包含n个计算服务器的执行列表,在这个执行列表内为计算服务器依照数据处理能力进行排序,并赋予相应的基准分值,逐个分配数据处理请求时,依照计算服务器的当前分值从小到大进行分配,每当一个计算服务器被分配一个数据处理请求时,该计算服务器的当前分值为c为:c=b+1+n,b代表分配该数据处理请求之前的分值,从而将该计算服务器排到列表的最后一个位置,每当一个计算服务器完成了一个数据处理请求时,该计算服务器的当前分值c为:c=b-1,则将该计算服务器向前排一个位置,从而实现按照计算服务器的实际数据处理能力分配任务,从而达到有效利用各服务器,最大限度发挥服务器的运算能力的目的,并且对于数据处理较慢的服务器,其排序靠后,相对处理的请求也少,也避免了因负载过大而导致机器故障的问题。此外,在现有的资源占用到一定程度之后,就启用备用服务器,利用前面的n个数据处理请求判断备用服务器的数据处理能力,再将备用服务器排进执行列表,本发明可动态地为所有的服务器分配任务,提高了数据处理***的工作效率,降低故障率。
附图说明
图1为本发明所述的基于多个服务器的数据处理***的结构示意图。
具体实施方式
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
如图1所示,本发明提供一种基于多个服务器的数据处理***,包括:n个计算服务器;备用服务器;管理服务器,其用于建立一个数据处理请求的队列,在该队列内数据处理请求是按管理服务器接收的时间排序的,管理服务器还用于建立一个包含n个计算服务器的执行列表,所述管理服务器同时向每个计算服务器发出n个测试数据处理请求,并记录每个计算服务器完成n个测试数据处理请求所消耗的测试时间,记为测试时间序列,依照所消耗的测试时间从少到多将n个计算服务器从上到下排序,记为初始排序,并为每个计算服务器赋予基准分值a,下一个计算服务器的基准分值为上一个计算服务器的基准分值加1。
为了考察现有的n个计算服务器的数据处理能力,先向每个计算服务器发出n个测试数据处理请求,记录每个计算服务器完成这n个测试数据处理请求所消耗的测试时间。测试时间消耗越少,证明该计算服务器的数据处理能力越强,其排序应靠前,所被赋予的基准分值越小。该执行列表从上往下计,下一个计算服务器的基准分值比上一个计算服务器的基准分值大1。
其中,在所述管理服务器逐个分配数据处理请求时,按n个计算服务器的当前分值从小到大进行分配,每当一个计算服务器被分配了一个数据处理请求时,该计算服务器的当前分值c为:c=b+1+n,b代表分配该数据处理请求之前的分值,每当一个计算服务器完成了一个数据处理请求时,该计算服务器的当前分值c为:c=b-1;n个计算服务器按照当前分值从小到大排序。
由于管理服务器上建立了一个数据处理请求的队列,该队列内依据接收的时间排列数据处理请求,管理服务器逐个将队列内的数据处理请求分配下去。在分配过程中,计算服务器的当前分值发生变化,依据当前分值对所有的计算服务器进行排序,即执行列表内各计算服务器的排序可能是一直在改变的。举例来说,有4个计算服务器A、B、C、D,n=4,从上到下,其基准分值分别为101、102、103和104,第1个数据处理请求分配给A,A的当前分值变106,第2个数据处理请求分配给B,B的当前分值为107,则现在排序变为了C(103)、D(104)、A(106)、B(107),此时A完成了任务,则排序又变为C(103)、D(104)、A(105)、B(107)。A虽然完成了任务,但并将其直接排回到执行列表的最上方,由之前排在A之后的C和D继续接收任务,也有助于提高对各服务器的利用效率。如果出现两个计算服务器的当前分值相同的情况,则随机选择一个分配数据处理请求,但一般不会太出现这一情况。在比如订餐,订票的***中,处理每个数据处理请求所消耗的时间基本是相同的,本发明更适用这种单个数据处理请求的数据量不大,在个数较多,且数据处理请求提出的频率较高的情况。
这样,对于数据处理能力强的计算服务器,其一方面排序靠上,另一方面其处理速度快,每次都很快回到靠前的位置,又再次接收新的数据处理请求,从而得到有效利用;而相应地,对于数据处理能力弱的计算服务器,则排序始终靠后,有足够的时间和资源对数据处理请求进行处理,不会超出自身的负载限制,降低了发生故障的几率。
当出现一个计算服务器的当前分值达到其基准分值的1.5倍时,则所述管理服务器启用一个备用服务器,并将该备用服务器暂时编入至执行列表的最上方的一个位置;所述管理服务器将队列中连续的n个数据处理请求全部分配给备用服务器,并记录备用服务器完成该n个数据处理请求所消耗的测试时间,将该测试时间***至测试时间序列中,使该测试时间的大小比上一个计算服务器的测试时间值大,而比下一个计算服务器的测试时间值小,从而确定备用服务器在初始排序中的位置,并为该备用服务器赋予相应的基准分值,该备用服务器的基准分值为上一个计算服务器的基准分值加0.1;将备用服务器的基准分值乘以1.5倍,换算成当前分值,将备用服务器记为计算服务器;从该n个数据处理请求之后的第1个数据处理请求开始,再按n+1个计算服务器的当前分值从小到大进行分配。
当有一个计算服务器的当前分值达到一定程度,以前述的例子来说,当有计算服务器A的当前分值达到151.5,则证明现有所有的计算服务器都已经达到相当高的占用率,则启用一个备用服务器。由于备用服务器本身并不属于当前的数据处理***,该备用服务器可能还在同时处理其他事务,只是其仍有能力分担数据处理***的工作,所以在开始阶段,需要对备用服务器进行测试,考察其数据处理能力。即将在队列内的排在前面的n个数据处理请求都分配给该备用服务器,再依据测试时间确定备用服务器在执行列表中的位置。再举例来说,有4个计算服务器A、B、C、D,基准分值为101、102、103、104,当前排序变为A(151.5)、B(153)、C(154)、D(155),启动备用服务器E,经测试,E在初始排序中的位置应该为B和C之间,则E的基准分值为102.1,经计算E的当前分值为153.15,则当前排序为A(151.5)、B(153)、E(153.15)、C(154)、D(155)。在确定了备用服务器的排序之后,除了前面直接分配给备用服务器的n个数据处理请求,后面的数据处理请求仍按照计算服务器的当前分值从小到大的方式分配。
所述的基于多个服务器的数据处理***中,所述管理服务器计算每个计算服务器的平均处理时间t,t=N/T,其中,N代表到当前时刻一个计算服务器所处理的数据处理请求,T为从一个计算服务器开始处理第一个数据处理请求到当前时刻的时长,并建立一个动态列表,该动态列表内依照计算服务器的平均处理时间从小到大排序;将该动态列表与执行列表的当前排序比较,当动态列表中存在20%~30%的计算服务器的排序与在执行列表中不一致,则将动态列表内的内容更新为新的执行列表,为新的执行列表内的每个计算服务器赋予基准分值,下一个计算服务器的基准分值为上一个计算服务器的基准分值加1,所述管理服务器重新按新的执行列表分配数据处理请求。
管理服务器还实时监控计算服务器的平均处理时间,并建立一个动态列表,计算服务器依照平均处理时间从小到大排序。将动态列表与执行列表的当前排序比较,正常来说,由于执行列表中的初始排序就是依照计算服务器的数据处理能力排序的,又由于每个数据处理请求所消耗的资源基本是一定的,执行列表的当前排序和初始排序的变化应该不大,而动态列表与执行列表的当前排序也不会有太大区别,但一些计算服务器在运行一段时间之后,可能会出现数据处理能力下降的情况,并且由于在***工作过程中可能启用了备用服务器,导致所有计算服务器的排序不一定能够反映出各自的数据处理能力,动态列表就是用来跟踪这一情况的。当动态列表存在20~30%的排序不同,如在执行列表的当前排序为A、B、C、D,而在动态列表中为A、C、D、B,则B的排序不同,比例为25%,则要将动态列表中的内容更新为新的执行列表,即新的执行列表为A、C、D、B,且基准分值分别为101、102、103、104。本发明提高了***的适应性,提高了***的工作效率。
优选地,所述的基于多个服务器的数据处理***中,当动态列表中存在20%的计算服务器的排序与在执行列表中不一致,则将动态列表内的内容更新为新的执行列表。
优选的是,所述的基于多个服务器的数据处理***中,n取值为10,列表内最上方的一个计算服务器的基准分值取值为101。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。
Claims (4)
1.一种基于多个服务器的数据处理***,其特征在于,包括:
n个计算服务器;
备用服务器;
管理服务器,其用于建立一个数据处理请求的队列,在该队列内数据处理请求是按管理服务器接收的时间排序的,管理服务器还用于建立一个包含n个计算服务器的执行列表,所述管理服务器同时向每个计算服务器发出n个测试数据处理请求,并记录每个计算服务器完成n个测试数据处理请求所消耗的测试时间,记为测试时间序列,依照所消耗的测试时间从少到多将n个计算服务器从上到下排序,记为初始排序,并为每个计算服务器赋予基准分值a,下一个计算服务器的基准分值为上一个计算服务器的基准分值加1;
其中,在所述管理服务器逐个分配数据处理请求时,按n个计算服务器的当前分值从小到大进行分配,每当一个计算服务器被分配了一个数据处理请求时,该计算服务器的当前分值c为:c=b+1+n,b代表分配该数据处理请求之前的分值,每当一个计算服务器完成了一个数据处理请求时,该计算服务器的当前分值c为:c=b-1;n个计算服务器按照当前分值从小到大排序;
当出现一个计算服务器的当前分值达到其基准分值的1.5倍时,则所述管理服务器启用一个备用服务器,并将该备用服务器暂时编入至执行列表的最上方的一个位置;所述管理服务器将队列中连续的n个数据处理请求全部分配给备用服务器,并记录备用服务器完成该n个数据处理请求所消耗的测试时间,将该测试时间***至测试时间序列中,使该测试时间的大小比上一个计算服务器的测试时间值大,而比下一个计算服务器的测试时间值小,从而确定备用服务器在初始排序中的位置,并为该备用服务器赋予相应的基准分值,该备用服务器的基准分值为上一个计算服务器的基准分值加0.1;将备用服务器的基准分值乘以1.5倍,换算成当前分值,将备用服务器记为计算服务器;从该n个数据处理请求之后的第1个数据处理请求开始,再按n+1个计算服务器的当前分值从小到大进行分配。
2.如权利要求1所述的基于多个服务器的数据处理***,其特征在于,所述管理服务器计算每个计算服务器的平均处理时间t,t=N/T,其中,N代表到当前时刻一个计算服务器所处理的数据处理请求,T为从一个计算服务器开始处理第一个数据处理请求到当前时刻的时长,并建立一个动态列表,该动态列表内依照计算服务器的平均处理时间从小到大排序;将该动态列表与执行列表的当前排序比较,当动态列表中存在20%~30%的计算服务器的排序与在执行列表中不一致,则将动态列表内的内容更新为新的执行列表,为新的执行列表内的每个计算服务器赋予基准分值,下一个计算服务器的基准分值为上一个计算服务器的基准分值加1,所述管理服务器重新按新的执行列表分配数据处理请求。
3.如权利要求2所述的基于多个服务器的数据处理***,其特征在于,当动态列表中存在20%的计算服务器的排序与在执行列表中不一致,则将动态列表内的内容更新为新的执行列表。
4.如权利要求1所述的基于多个服务器的数据处理***,其特征在于,n取值为10,列表内最上方的一个计算服务器的基准分值取值为101。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510072850.7A CN104618492B (zh) | 2015-02-11 | 2015-02-11 | 一种基于多个服务器的数据处理*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510072850.7A CN104618492B (zh) | 2015-02-11 | 2015-02-11 | 一种基于多个服务器的数据处理*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104618492A CN104618492A (zh) | 2015-05-13 |
CN104618492B true CN104618492B (zh) | 2018-02-06 |
Family
ID=53152767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510072850.7A Active CN104618492B (zh) | 2015-02-11 | 2015-02-11 | 一种基于多个服务器的数据处理*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104618492B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106407002B (zh) * | 2016-08-22 | 2018-07-13 | 平安科技(深圳)有限公司 | 数据处理任务执行方法和装置 |
CN110084498B (zh) * | 2019-04-18 | 2024-07-23 | 深圳前海微众银行股份有限公司 | 一种服务端的派工方法、装置、计算机设备及存储介质 |
CN112925636A (zh) * | 2019-12-06 | 2021-06-08 | 北京沃东天骏信息技术有限公司 | 一种请求调度、处理方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102394916A (zh) * | 2011-10-11 | 2012-03-28 | 上海创件信息科技有限公司 | 一种有关网络协作时空均衡的资源访问权控制方法 |
CN102611622A (zh) * | 2012-02-28 | 2012-07-25 | 清华大学 | 一种弹性云计算平台下工作负载的调度方法 |
CN103957251A (zh) * | 2014-04-28 | 2014-07-30 | 迈普通信技术股份有限公司 | 一种实现服务器负载均衡的方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7930573B2 (en) * | 2007-09-18 | 2011-04-19 | International Business Machines Corporation | Workload apportionment according to mean and variance |
-
2015
- 2015-02-11 CN CN201510072850.7A patent/CN104618492B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102394916A (zh) * | 2011-10-11 | 2012-03-28 | 上海创件信息科技有限公司 | 一种有关网络协作时空均衡的资源访问权控制方法 |
CN102611622A (zh) * | 2012-02-28 | 2012-07-25 | 清华大学 | 一种弹性云计算平台下工作负载的调度方法 |
CN103957251A (zh) * | 2014-04-28 | 2014-07-30 | 迈普通信技术股份有限公司 | 一种实现服务器负载均衡的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN104618492A (zh) | 2015-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9712640B2 (en) | Load distribution in client server system | |
CN103744719B (zh) | 锁管理方法及***、锁管理***的配置方法及装置 | |
CN109669758A (zh) | 服务器资源的调配方法、装置、设备及存储介质 | |
CN107819797B (zh) | 访问请求处理方法和装置 | |
CN105072182A (zh) | 一种负载均衡方法、负载均衡器和用户终端 | |
CN102143075A (zh) | 实现负载均衡的方法和*** | |
CN106878415B (zh) | 数据消费的负载均衡方法及装置 | |
CN104618492B (zh) | 一种基于多个服务器的数据处理*** | |
US20160019313A1 (en) | Striping of directed graphs | |
CN102402423A (zh) | 一种在网络设备中进行多任务处理的方法和设备 | |
CN108154298B (zh) | 配送任务分配方法、装置、电子设备及计算机存储介质 | |
CN110442610A (zh) | 负载均衡的方法、装置、计算设备以及介质 | |
CN113127171A (zh) | 用于任务分配***中的行为配对的技术 | |
CN108847981A (zh) | 分布式计算机云计算处理方法 | |
CN103257899B (zh) | 计算机*** | |
CN108694083B (zh) | 一种服务器的数据处理方法和装置 | |
CN112888005A (zh) | 一种面向mec的分布式业务调度方法 | |
CN106713163A (zh) | 一种调配服务器负载的方法及装置 | |
US8407291B1 (en) | System and method for dispensing e-Care | |
CN115586957B (zh) | 一种任务调度***、方法、装置及电子设备 | |
CN111249747B (zh) | 一种游戏中的信息处理方法及装置 | |
CN108153494A (zh) | 一种io请求处理方法及装置 | |
CN105988725B (zh) | 磁盘i/o调度方法和装置 | |
CN104572276A (zh) | 一种基于云计算的并发数据处理方法 | |
CN112837128B (zh) | 订单指派方法、装置、计算机设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |