CN102025753B - 一种服务器数据资源负载均衡处理方法及设备 - Google Patents
一种服务器数据资源负载均衡处理方法及设备 Download PDFInfo
- Publication number
- CN102025753B CN102025753B CN 200910169498 CN200910169498A CN102025753B CN 102025753 B CN102025753 B CN 102025753B CN 200910169498 CN200910169498 CN 200910169498 CN 200910169498 A CN200910169498 A CN 200910169498A CN 102025753 B CN102025753 B CN 102025753B
- Authority
- CN
- China
- Prior art keywords
- server
- load
- degree
- data
- servers
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种服务器数据资源负载均衡处理设备,包括:确定提供数据资源服务的服务器的顺序;根据服务器数量以及每台服务器上的数据量、服务器顺序确定提供数据资源服务的服务器。采用本发明实施例中提供的技术方案,不仅能够同时兼顾容量平衡、负载平衡,而且实现方式简单可靠,比较通用。
Description
技术领域
本发明涉及数据处理技术,特别涉及一种服务器数据资源负载均衡处理方法及设备。
背景技术
在分配服务器资源时,通常需要保证各台服务器数据存储量比较均衡,又能防止某几台负载高,当一台忙碌的时候还能正常工作。
但是现有技术中,对于同时兼顾容量平衡、负载平衡的算法比较少见和复杂,如果考虑到还需要满足各种特殊的软件需求,则这样的技术方案更少。
因此,现有技术的不足在于:没有一种通用的、简便的能够实现服务器资源平衡的技术方案。
发明内容
本发明所解决的技术问题在于提供了一种服务器数据资源负载均衡处理方法及设备。
本发明实施例中提供了一种服务器数据资源负载均衡处理方法,包括如下步骤:
设定提供数据资源服务的服务器的先后顺序;
确定所述每一台服务器的负载度;
如果当前服务器的负载度不为0,并且当前服务器在上一轮服务器的轮循中提供过服务,按顺序确定由下一服务器无条件提供服务,并将该服务器的负载度减少预定的值;否则,由当前服务器提供服务;
依次判断每一台服务器的负载度,确定提供服务的服务器。
较佳地,确定所述每一台服务器的负载度,包括:
根据每台服务器存储的数据量以及所有服务器存储的数据总量确定所述每一台服务器的负载度,所述服务器存储的数据量越大其相应的负载度越大。
根据服务器的数量确定相差率,所述服务器的数量越少其相差率越大,所述相差率用于在服务器的数量较少时降低负载度的取值。
较佳地,确定所述每一台服务器的负载度,具体包括:
根据服务器数量确定相差率,所述相差率为:当I_sum_server>10时,I_diff_rate=1;当I_sum_server<=10,I_diff_rate=6-round(I_sum_server/2),其中,I_sum_server为服务器数量,I_diff_rate为相差率,round为进行四舍五入运算;
确定每台服务器上的数据量;
确定每台服务器的负载度,所述负载度为:Jack=round(round((I_count/I_sum_count)*100)/I_diff_rate),其中,Jack为负载度,I_count为每台服务器上的数据数量,I_sum_count为所有服务器上的数据量总和。
较佳地,进一步包括:
在满足设定的时间间隔后,重新确定负载度,当1台以上报务器报告忙碌状态时,将所有服务器的负载度数值置0。
较佳地,进一步包括:
为每台服务器增加一个互为数据资源备份的服务器,并将二者分为一组;
在确定提供数据资源服务的服务器的顺序时,进一步包括:
同一组的两台服务器的顺序尽量远隔。
较佳地,所述同一组的两台服务器的顺序尽量远隔,进一步包括:
由主服务器顺序提供数据服务,然后由备份服务器按照与其对应的主服务器提供数据服务的顺序提供数据服务。
本发明实施例中还提供了一种服务器数据资源负载均衡处理设备,包括:
顺序确定模块,用于设定提供数据资源服务的服务器的先后顺序;
负载度确定模块,用于确定所述每一台服务器的负载度;
均衡模块,用于如果当前服务器的负载度不为0,并且当前服务器在上一轮服务器的轮循中未提供过服务,按顺序确定由下一服务器无条件提供服务,并将该服务器的负载度减少预定的值;否则,由当前服务器提供服务;依次判断每一台服务器的负载度,确定提供服务的服务器。
较佳地,所述负载度确定模块包括:
相差率确定单元,用于根据服务器数量确定相差率,所述相差率为:当I_sum_server>10时,I_diff_rate=1;当I_sum_server<=10,I_diff_rate=6-round(I_sum_server/2),其中,I_sum_server为服务器数量,I_diff_rate为相差率,round为进行四舍五入运算;
数据量确定单元,用于确定每台服务器上的数据量;
负载度确定单元,用于确定每台服务器的负载度,所述负载度为:Jack=round(round((I_count/I_sum_count)*100)/I_diff_rate),其中,Jack为负载度,I_count为每台服务器上的数据数量,I_sum_count为所有服务器上的数据量总和;
较佳地,所述负载度确定模块进一步包括:
置零单元,在满足设定的时间间隔后,重新确定负载度,当1台以上服务器报告忙碌状态时,将所有服务器的负载度数值置0。
较佳地,所述负载度确定模块进一步用于在到达到系统指定的循环次数时,或者在指定的时间间隔到达时,或者有新的服务器被提供进来时,重新确定每台服务器的负载度。
较佳地,所述顺序确定模块进一步用于为每台服务器增加一个互为数据资源备份的服务器,并将二者分为一组;在确定提供数据资源服务的服务器的顺序时,使同一组的两台服务器的顺序尽量远隔。
较佳地,所述均衡模块进一步用于采用并发方式在多核CPU处理器上根据服务器数量以及每台服务器上的数据量、服务器顺序确定提供数据资源服务的服务器。
本发明有益效果如下:
由于本发明在实施过程中,在确定提供数据资源服务的服务器的顺序后,将根据服务器数量以及每台服务器上的数据量、服务器顺序确定提供数据资源服务的服务器。由此可见,采用本发明实施例中提供的技术方案,不仅能够同时兼顾容量平衡、负载平衡,而且实现方式简单可靠,比较通用。
附图说明
图1为本发明实施例中服务器数据资源负载均衡处理方法实施流程示意图;
图2为本发明实施例中实施数据资源负载均衡服务器组结构示意图;
图3为本发明实施例中分组后的服务器数据资源负载均衡处理方法实施流程示意图;
图4为本发明实施例中每一服务器的Jack计算示意图;
图5为服务器数据资源负载均衡处理设备结构示意图。
具体实施方式
下面结合附图对本发明的具体实施方式进行说明。
图1为服务器数据资源负载均衡处理方法实施流程示意图,如图所示,在负载均衡处理过程中可以包括如下步骤:
步骤101、设定提供数据资源服务的服务器的先后顺序;
步骤102、确定所述每一台服务器的负载度;
步骤103、如果当前服务器的负载度不为0,并且当前服务器在上一轮服务器的轮循中提供过服务,按顺序确定由下一服务器无条件提供服务,并将该当前服务器的负载度减少预定的值;否则,由当前服务器提供服务;
步骤104、依次判断每一台服务器的负载度,确定提供服务的服务器。
本方案中,提供数据资源服务的服务器是指该服务器为外部设备提供数据存储服务,本发明提供的技术方案目的在于使若干这样的服务器能够在为外部设备提供数据存储服务时,能够保证各台服务器数据存储量比较均衡,又能防止某几台服务器提供存储服务时负载过高。
在确定提供数据资源服务的服务器的顺序,该顺序满足在服务器按所述顺序提供数据资源服务时,同一时间下有一台服务器提供数据资源服务即可,即,只需要能够保证不同时出现两台服务器面临任务分配就行。下面的实施例中将会以最简单的“环状”这一个顺序进行说明,该实施例中,将参与提供数据资源服务的服务器排成一个环状的顺序,可以参见图2,按该顺序,每一服务器依次提供服务,显然,在同一时间下只可能有一台服务器提供数据资源服务。
实施中,还可以进一步包括:
为每台服务器增加一个互为数据资源备份的服务器,并将二者分为一组;
在确定提供数据资源服务的服务器的顺序时,进一步包括:将同一组的两台服务器的顺序尽量远隔。
下面对具体实施的方式说明。
为便于从整体上理解本发明实施例中提供的技术方案,下面以另一形式的实例来说明本发明实施例提供的技术方案的实施流程。该实例中,每一台服务器都配置了互为备份的服务器,且将其尽量远隔。即,首先由主服务器顺序提供数据服务,然后由备份服务器按照与其对应的主服务器提供数据服务的顺序提供数据服务。
图2为实施数据资源负载均衡服务器组结构示意图,图中用以示例的有4组共八台服务器,当然,按本发明实施例提供的技术方案,实际实施时并不必只有八台服务器,同时将每台服务器排成队列,其中分属于同一组的间隔尽量远隔,则如图所示,可以包括:
处理服务器100,该服务器用于按处理服务器数据资源负载均衡处理方法对各服务器资源进行负载均衡,当然,其他具有类似数据处理、判断能力的硬件、软件或者硬软件结合的功能实体也能实施。
服务器131(101),服务器133(102),服务器135(103),服务器137(104),服务器132(101),服务器134(102),服务器136(103),服务器138(104),其中,括号内为其所属的组代号。
该例中,假设有4组服务器:101组(131-132)、102组2(133-134)、103组3(135-136)、104组4(137-138),对于每组两台机器做数据同步复制,即,如101组,被增加进131的数据将会由同步机制复制到132。同理,对于增加至132的记录数据会被自动同步到131,此为一组机器。其它3组相同情况。
实施中,如实施例中所示,可以按组划分服务器,每组服务器由奇数和偶数服务器组成,奇数服务器存储和返回的数据主键是奇数,偶数服务器存储和返回的数据主键是偶数。同时,同一组服务器中,奇偶数据实时互相备份。
分组的目的是为了分散数据存储,因为每组内两台服务器数据相互备份,可以提高系统存储容量,并增加系统的可靠性,因为组内两台机器数据互备,当一台机器出现问题,另一台机器立即能提供数据服务。
实施中,由于系统结构设计中,相同一组数据需要彼此复制,为了减少复制过程对系统整体性能影响,所以采用远隔策略。
图3为分组后的服务器数据资源负载均衡处理方法实施流程示意图,如图所示,在上述图2结构的服务器组中,在对数据资源进行负载均衡处理时,可以包括如下步骤:
步骤301、获取所有能提供服务的服务器列表;
本步骤中,具体可以是将服务器131、服务器133、服务器135、服务器137、服务器132、服务器134、服务器136、服务器138列表,表示可以由表中的以上服务器提供服务。
步骤302、按数据服务器的奇偶数确定服务器提供服务的先后顺序;
本步骤中,如图将服务器按环状的顺序排列,即:服务器131与服务器132、服务器133与服务器134、服务器135与服务器136、服务器137与服务器138,其目的在于使一族的服务器尽量远隔。
由于在实施中采用了一组服务器中的两台服务器同步复制的机制,所以在顺序编号时后,如果在按服务器编号的奇偶数来排列,它们自然就会出现尽量远隔的效果。比如:服务器131、服务器132、服务器133、服务器134、服务器135、服务器136、服务器137、服务器138时按顺序编号的,但是,服务器131与服务器132是一组、服务器133与服务器134是一组、服务器135与服务器136是一组、服务器137与服务器138是一组,所以采用编号的奇偶来排列时就会出现:服务器131、服务器133、服务器135、服务器137,然后是服务器132、服务器134、服务器136、服务器138,可以看出,同一组的服务器出现了尽量远隔的效果,例如:在同一组的服务器131与服务器132之间,间隔了3台服务器,其他组的情况也一样。当然,实施中还可以采用其他的排列方式,本实施例仅是列举了较为方便的一种方式。
步骤303、按服务器组号确定服务器提供服务的先后顺序;
本步骤中,如图2所示,在实施例中具体的编号为组101、102、103、104,本实施例中便可以具体按服务器组号的大小进行排列。如图按组101、102、103、104排列,即:服务器131(101),服务器133(102),服务器135(103),服务器137(104),服务器132(101),服务器134(102),服务器136(103),服务器138(104),其中,括号内为组号。
当然,实施中还可以采用其他的排列方式,本实施例仅是列举了较为方便的一种方式。
步骤304、计算相差率;
其中,在确定相差率时,可以按照以下方式确定:当I_sum_server>10时,I_diff_rate=1;当I_sum_server<=10,I_diff_rate=6-round(I_sum_server/2),其中,I_sum_server为服务器数量,I_diff_rate为相差率,round为进行四舍五入运算;那么,图2中所示为8台服务器,其相差率为:I_diff_rate=6-round(8/2),再进一步:I_diff_rate=2。
步骤305、计算处于忙碌的计算机数量;
步骤306、计算总数据量;
如图所示,总数据量为:服务器131的10000+服务器133的15000+服务器135的11000+服务器137的12000=48000。
在上述实施过程中,对应图2中的结构,实施是由处理服务器100进行处理。
图4为每一服务器的Jack计算示意图,如图所示,在计算出总数据量后,对每一台服务器可以按以下步骤实施,具体的,就是分别对服务器131、服务器133、服务器135、服务器137、服务器132、服务器134、服务器136、服务器138按以下步骤实施:
步骤401、判断处于忙碌的计算机数量是否为0,是则转入步骤402,否则转入步骤403;
步骤402、赋值Jack为:当前服务器数据量占总数据量的百分比除以相差率,其中,Jack为负载度;
以服务器131为例,Jack=round(round((I_count/I_sum_count)*100)/I_diff_rate),即:Jack=round(round((10000/48000)*100)/2),进一步的,Jack=round(round10.4166),进一步的,Jack=10;
按此方式分别对服务器131、服务器133、服务器135、服务器137、服务器132、服务器134、服务器136、服务器138进行计算得到每一台服务器的Jack。
步骤403、给Jack赋值为0。
下面对各步骤进行说明。
首先对根据每台服务器当前的数据量对Jack赋值进行说明。
则具体实施中,赋值规则可以如下:
根据服务器数I_sum_server,计算一个相差率I_diff_rate;如前所述,可以根据服务器数量确定相差率,相差率为:当I_sum_server>10时,I_diff_rate=1;当I_sum_server<=10,I_diff_rate=6-round(I_sum_server/2),其中,I_sum_server为服务器数量,I_diff_rate为相差率,round为进行四舍五入运算。
I_diff_rate的目的是为防止组数少的时候压力差距大引起单台负载高,组数越多相差率越小,可以的取值范围为:1-5。
计算方法可以是:
当I_sum_server>10时,I_diff_rate=1;当I_sum_server<=10,I_diff_rate=6-round(I_sum_server/2),其中,round是对I_sum_server/2进行四舍五入;如:当I_sum取值为1-2的值是5;取值为3-4的值是4;取值为5-6的值是3;取值为7-8的值是2,取值>9的值是1。以表表示则为:
I_sum_server(服务器数) | I_diff_rate(相差比率) |
1-2 | 5 |
3-4 | 4 |
5-6 | 3 |
7-8 | 2 |
>9 | 1 |
具体的,每台服务器的赋值可以按下式计算:
Jack=round(round((I_count/I_sum_count)*100)/I_diff_rate)
其中,I_count为每台机器当前的数据数量,I_sum_count为所有服务器上数据量总和。
通过上式,将占全部数据的百分比/相差比率转化为0-100之间的整型,需要提供给外部设备的数据量越大的服务器也意味着工作量越大,那么这样的服务器Jack值也将越大。
在上述实施中,相差率公式是用来解决当集群内服务器较少的情况下,增加服务器,或者原来不能工作的服务器恢复回来之后的数据会否过载问题;
JACK值越大,表示该台服务器的存储数据量越多,代表着它之前已经提供了很多数据资源服务,所以本次分配资源时,它应该少提供数据资源服务,少被分配,让其它服务器更多地提供数据资源服务,从而最终实现使所有机器的数据存储量比较均衡。
其次,对根据JACK的值来确定执行数据资源服务的具体的服务器的实施进行说明。
外部请求服务;
从队列开始轮流提供服务,如按上述实施例的分组提供顺序为:
服务器131→服务器133→服务器135→服务器137→服务器132→服务器134→服务器136→服务器138。
在此顺序下,如果轮到某台服务器对外提供数据存储服务时,先由处理服务器100判断该台服务器的负载度Jack是否为0。若Jack不为0,并且上一次循环中,该台服务器提供过数据存储服务,则该台服务器本次不提供数据存储服务,并将该台服务器的负载度Jack值减少预定的值,优选的可以设定该预定的值为1。然后,直接使用下一台服务器提供服务,并且是无条件提供服务。实施中这样处理是由于Jack值越大,表示该台服务器提供的数据存储服务越多,因此轮到它时,就将提供服务的机会强制给下一台服务器。而由于本次该台服务器并没有对外提供数据存储服务,因此,其负载度将会相应的减少。
如果轮到某台服务器提供数据服务时,处理服务器100判断该台服务器的负载度Jack不为0时,并且上一轮没有提供过数据存储服务,则本轮由该台服务器提供数据存储服务。
如果轮到的服务器Jack值为0,则该台服务器无条件提供服务;
当所有的服务器中有一台报告了忙碌状态,则设定所有服务器的Jack为0;实施中,服务器在处理服务请求时,可以通过进程来检查自己的状态,并汇报是否忙碌,如果不忙碌则表示其可以提供服务;一台忙碌后所有服务器的JACK都赋值为0的目的是当发现服务器忙碌时,整个系统平均负担,减小系统进一步恶化的可能。优选的,本申请实施例是在重新为每台服务器的负载度赋予初始的JACK值时检测服务器是否处于忙碌状态,若其中有一台报告了忙碌状态,则设定所有服务器的Jack为0。
按上述规律反复进行,直到达到系统指定的循环次数时,重新为每台服务器的负载度赋予初始的JACK值;或者在指定的时间间隔到达时,或者新的服务器状态和数量会被提供进来时,重新为每台服务器的负载度赋予初始的JACK值。其中,新的服务器状态和数量是指:有的服务器可能由能提供服务的状态变为不能提供服务的状态,或者是由不能提供服务的状态变为能提供服务的状态,这将会使相差率I_diff_rate发生变化,而数量是指这样的服务器数量是多少,比如有3台服务器由不能提供服务的状态变为能提供服务的状态。
由上述实施例可以看出,确定由哪一台服务器提供服务是通过判断当前服务器的负载度的取值进行的,即根据服务器数量以及每台服务器上的数据量确定提供数据资源服务的服务器,可以包括:
根据服务器数量确定相差率,所述相差率为:当I_sum_server>10时,I_diff_rate=1;当I_sum_server<=10,I_diff_rate=6-round(I_sum/2),其中,I_sum_server为服务器数量,I_diff_rate为相差率,round为进行四舍五入运算;
确定每台服务器上的数据量;
确定每台服务器的负载度,所述负载度为:Jack=round(round((I_count/I_sum_count)*100)/I_diff_rate),其中,Jack为负载度,I_count为每台服务器上的数据数量,I_sum_count为所有服务器上数据量总和;
在确定提供数据资源服务的服务器时,所有服务器按顺序提供服务资源,如果当前服务器Jack不为0,并且当前服务器在上一轮服务器的轮循中未将该服务器的Jack值减少预定的值,则本轮将当前服务器Jack数减少预定的值,且按顺序确定下一服务器无条件提供服务,否则,当前服务器同样无条件提供服务;提供服务的服务器的下一服务器成为新的当前服务器,为一下次提供服务做准备。
在确定提供数据资源服务的服务器时,如果服务器Jack不为0,且Jack的数值没有减少过预定的值,则本轮将当前服务器的Jack数值减少预定的值,并按服务器顺序确定由下一服务器提供数据资源服务,如果服务器Jack为0,确定该服务器提供数据资源服务并在重新分配Jack后参与数据资源服务。
在上述过程中,在确定提供数据资源服务的服务器时,所有服务器根据顺序排成一个环依次提供服务资源,那么,对于当前的服务器,由于按顺序来确定提供数据资源服务的服务器,那么根据每一轮的顺序,其就存在本次(轮)、上一次(轮)、下一次(轮)的分配关系,对于本次分配而言,其是否执行提供数据资源服务,取决于其上次是否提供过服务,以及Jack的数值是否为0;那么,在本次分配时,如果当前服务器Jack不为0,并且当前服务器在上一轮服务器的轮循中未将该服务器的Jack值减少预定的值,则本轮将当前服务器Jack数减少预定的值,并由环中的下一服务器无条件提供服务;否则,当前服务器同样无条件提供服务;提供服务的服务器的下一服务器成为新的当前服务器,为一下次提供服务做准备。
实施中,还可以进一步包括:
在满足设定的时间间隔后,重新分配Jack数,当1台以上报务器报告忙碌状态时,所有服务器的Jack数值置0。
基于同一发明构思,本发明实施例中还提供了一种服务器数据资源负载均衡处理设备,由于该设备解决问题的原理与一种服务器数据资源负载均衡处理方法相似,因此该设备的实施可以参见方法的实施,重复之处不在赘述。
图5为服务器数据资源负载均衡处理设备结构示意图,如图所示,设备中可以包括:
顺序确定模块501,用于设定提供数据资源服务的服务器的先后顺序;
负载度确定模块502,用于确定所述每一台服务器的负载度;
均衡模块503,用于如果当前服务器的负载度不为0,并且当前服务器在上一轮服务器的轮循中提供过服务,按顺序确定由下一服务器无条件提供服务,并将该服务器的负载度减少预定的值;否则,由当前服务器提供服务;依次判断每一台服务器的负载度,确定提供服务的服务器。
实施中,所述负载度确定模块包括:
相差率确定单元5021,用于根据服务器数量确定相差率,所述相差率为:当I_sum_server>10时,I_diff_rate=1;当I_sum_server<=10,I_diff_rate=6-round(I_sum_server/2),其中,I_sum_server为服务器数量,I_diff_rate为相差率,round为进行四舍五入运算;
数据量确定单元5022,用于确定每台服务器上的数据量;
负载度确定单元5023,用于确定每台服务器的负载度,所述负载度为:Jack=round(round((I_count/I_sum_count)*100)/I_diff-rate),其中,Jack为负载度,I_count为每台服务器上的数据数量,I_sum_count为所有服务器上的数据量总和。
实施中,负载度确定模块中还可以进一步包括:
置零单元5024,用于在满足设定的时间间隔后,重新确定负载度,当1台以上报务器报告忙碌状态时,将所有服务器的负载度数值置0。
实施中,负载度确定模块还可以进一步用于在到达到系统指定的循环次数时,或者在指定的时间间隔到达时,或者有新的服务器被提供进来时,重新确定每台服务器的负载度。
实施中,顺序确定模块还可以进一步用于为每台服务器增加一个互为数据资源备份的服务器,并将二者分为一组;在确定提供数据资源服务的服务器的顺序时,使同一组的两台服务器的顺序尽量远隔。
实施中,均衡模块可以进一步用于采用并发方式在多核CPU处理器上根据服务器数量以及每台服务器上的数据量、服务器顺序确定提供数据资源服务的服务器。
具体实施中,如果据衡模块在实施中基于并发处理设计(如Erlang语言),再配合多核服务器则能够达到很好的效果,实践中,在使用了Erlang的数组列表来存储服务器队列时,计算算法的速度非常理想。这是由于并发处理语言在并发的特性上提供了很多原子性,如变量不共享,两个进程通过消息通信,减少了很多其它非并发语言的这种不足,例如C语言中使用指针,会导致很多不足一样。多核代表数据每个并发的每个进程在独立的CPU上运行,满足了并发的基础条件。对于均衡模块这种需要在同一瞬间,同时有多个请求产生的业务处理上,并发就能够体现出了速度上的优势,能够同一时间将任务分配到不同的服务器上处理。
为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。
由上述实施例可见,采用本发明实施例中提供的技术方案,能够同时兼顾容量平衡、负载平衡,实现方式简单可靠,而且比较通用。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种服务器数据资源负载均衡处理方法,其特征在于,包括如下步骤:
设定提供数据资源服务的服务器的先后顺序;
确定每一台服务器的负载度,具体包括:根据每台服务器存储的数据量以及所有服务器存储的数据总量确定所述每一台服务器的负载度,其中,所述服务器存储的数据量越大其相应的负载度越大;
如果当前服务器的负载度不为0,并且当前服务器在上一轮服务器的轮循中提供过服务,按顺序确定由下一服务器无条件提供服务,并将该服务器的负载度减少预定的值;否则,由当前服务器提供服务;
依次判断每一台服务器的负载度,确定提供服务的服务器。
2.如权利要求1所述的方法,其特征在于,所述确定每一台服务器的负载度,具体包括:
根据服务器数量确定相差率,其中,所述服务器的数量越少其相差率越大,所述相差率用于在服务器的数量较少时降低负载度的取值,具体包括:所述相差率为:当I_sum_server>10时,I_diff_rate=1;当I_sum_server<=10,I_diff_rate=6-round(I_sum_server/2),其中,I_sum_server为服务器数量,I_diff_rate为相差率,round为进行四舍五入运算;
确定每台服务器上存储的数据量;
确定每台服务器的负载度,所述负载度为:Jack=round(round((I_count/I_sum_count)*100)/I_diff_rate),其中,Jack为负载度,I_count为每台服务器上存储的数据数量,I_sum_count为所有服务器上存储的数据量总和。
3.如权利要求1所述的方法,其特征在于,进一步包括:
在满足设定的时间间隔后,重新确定负载度,当1台以上报务器报告忙碌状态时,将所有服务器的负载度数值置0。
4.如权利要求1或2所述的方法,其特征在于,进一步包括:
为每台服务器增加一个互为数据资源备份的服务器,并将二者分为一组;
在确定提供数据资源服务的服务器的顺序时,进一步包括:
同一组的两台服务器的顺序尽量远隔。
5.如权利要求4所述的方法,其特征在于,所述同一组的两台服务器的顺序尽量远隔,进一步包括:
由主服务器顺序提供数据服务,然后由备份服务器按照与其对应的主服务器提供数据服务的顺序提供数据服务。
6.如权利要求1所述的方法,其特征在于,所述将该服务器的负载度减少预定的值,所述预定的值为1。
7.一种服务器数据资源负载均衡处理设备,其特征在于,包括:
顺序确定模块,用于设定提供数据资源服务的服务器的先后顺序;
负载度确定模块,用于确定每一台服务器的负载度,具体包括:根据每台服务器存储的数据量以及所有服务器存储的数据总量确定所述每一台服务器的负载度,其中,所述服务器存储的数据量越大其相应的负载度越大;
均衡模块,用于如果当前服务器的负载度不为0,并且当前服务器在上一轮服务器的轮循中提供过服务,按顺序确定由下一服务器无条件提供服务,并将该服务器的负载度减少预定的值;否则,由当前服务器提供服务;依次判断每一台服务器的负载度,确定提供服务的服务器。
8.如权利要求7所述的设备,其特征在于,所述负载度确定模块包括:
相差率确定单元,用于根据服务器数量确定相差率,所述相差率为:当I_sum_server>10时,I_diff_rate=1;当I_sum_server<=10,I_diff_rate=6-round(I_sum_server/2),其中,I_sum_server为服务器数量,I_diff_rate为相差率,round为进行四舍五入运算;
数据量确定单元,用于确定每台服务器上存储的数据量;
负载度确定单元,用于确定每台服务器的负载度,所述负载度为:Jack=round(round((I_count/I_sum_count)*100)/I_diff_rate),其中,Jack为负载度,I_count为每台服务器上存储的数据数量,I_sum_count为所有服务器上存储的数据量总和。
9.如权利要求7所述的设备,其特征在于,所述负载度确定模块进一步包括:
置零单元,用于在满足设定的时间间隔后,重新确定负载度,当1台以上报务器报告忙碌状态时,将所有服务器的负载度数值置0。
10.如权利要求7所述的设备,其特征在于,所述负载度确定模块进一步用于在到达到系统指定的循环次数时,或者在指定的时间间隔到达时,或者有新的服务器被提供进来时,重新确定每台服务器的负载度。
11.如权利要求7至10任一所述的设备,其特征在于,所述顺序确定模块进一步用于为每台服务器增加一个互为数据资源备份的服务器,并将二者分为一组;在确定提供数据资源服务的服务器的顺序时,使同一组的两台服务器的顺序尽量远隔。
12.如权利要求8所述的设备,其特征在于,所述均衡模块进一步用于采用并发方式在多核CPU处理器上根据服务器数量以及每台服务器上的数据量、服务器顺序确定提供数据资源服务的服务器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910169498 CN102025753B (zh) | 2009-09-17 | 2009-09-17 | 一种服务器数据资源负载均衡处理方法及设备 |
HK11108666.3A HK1154717A1 (en) | 2009-09-17 | 2011-08-16 | A server data resource load balancing method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910169498 CN102025753B (zh) | 2009-09-17 | 2009-09-17 | 一种服务器数据资源负载均衡处理方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102025753A CN102025753A (zh) | 2011-04-20 |
CN102025753B true CN102025753B (zh) | 2013-10-23 |
Family
ID=43866607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910169498 Active CN102025753B (zh) | 2009-09-17 | 2009-09-17 | 一种服务器数据资源负载均衡处理方法及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102025753B (zh) |
HK (1) | HK1154717A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219161B (zh) * | 2013-06-04 | 2017-09-05 | 华为技术有限公司 | 一种平衡节点负载的方法及装置 |
CN104852934A (zh) * | 2014-02-13 | 2015-08-19 | 阿里巴巴集团控股有限公司 | 基于前端调度实现流量分配的方法、装置和系统 |
CN106713396B (zh) * | 2015-11-17 | 2021-07-16 | 阿里巴巴集团控股有限公司 | 服务器调度方法和系统 |
CN107562531B (zh) * | 2016-06-30 | 2020-10-09 | 华为技术有限公司 | 一种数据均衡方法和装置 |
CN106254514B (zh) * | 2016-08-31 | 2019-07-16 | 东软集团股份有限公司 | 请求分发方法和装置 |
CN109218226A (zh) * | 2017-07-03 | 2019-01-15 | 迈普通信技术股份有限公司 | 报文处理方法及网络设备 |
CN109635038B (zh) * | 2018-11-20 | 2022-08-19 | 福建亿榕信息技术有限公司 | 一种结构化数据异地双读写方法 |
CN109933432A (zh) * | 2019-03-19 | 2019-06-25 | 北京百度网讯科技有限公司 | 用于发送数据的方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060424A (zh) * | 2006-04-21 | 2007-10-24 | 英业达股份有限公司 | 一种实现负载平衡与高可用性的系统及其方法 |
-
2009
- 2009-09-17 CN CN 200910169498 patent/CN102025753B/zh active Active
-
2011
- 2011-08-16 HK HK11108666.3A patent/HK1154717A1/xx unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060424A (zh) * | 2006-04-21 | 2007-10-24 | 英业达股份有限公司 | 一种实现负载平衡与高可用性的系统及其方法 |
Non-Patent Citations (2)
Title |
---|
"最小路径负载度路由协议的研究";鞠琳娜等;《计算机工程与应用》;20090201;第122-125页 * |
鞠琳娜等."最小路径负载度路由协议的研究".《计算机工程与应用》.2009,第122-125页. |
Also Published As
Publication number | Publication date |
---|---|
CN102025753A (zh) | 2011-04-20 |
HK1154717A1 (en) | 2012-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102025753B (zh) | 一种服务器数据资源负载均衡处理方法及设备 | |
CN106843745A (zh) | 容量扩展方法及装置 | |
CN108268317B (zh) | 一种资源分配方法及装置 | |
CN102135901B (zh) | 带有动态数量工作者的并行查询引擎 | |
CN103780646B (zh) | 一种云资源的调度方法及系统 | |
CN110162388A (zh) | 一种任务调度方法、系统及终端设备 | |
EA021548B1 (ru) | Способ параллельных вычислений и вычислительная платформа для анализа безопасности и устойчивости крупной энергетической сети | |
CN104683408A (zh) | OpenStack云计算管理平台建立虚拟机实例的方法和系统 | |
CN103761146A (zh) | 一种MapReduce动态设定slots数量的方法 | |
CN110704465A (zh) | 一种处理业务工单表的方法、装置及存储介质 | |
CN105786447A (zh) | 服务器处理数据的方法、装置及服务器 | |
CN112395269A (zh) | MySQL高可用组的搭建方法及装置 | |
CN111158904A (zh) | 一种任务调度方法、装置、服务器及介质 | |
CN115167992A (zh) | 任务处理方法、系统、装置、服务器、介质及程序产品 | |
CN107193749B (zh) | 测试方法、装置及设备 | |
CN113360321A (zh) | 微服务重试调用方法、装置、电子设备及存储介质 | |
CN116304390B (zh) | 时序数据处理方法、装置、存储介质及电子设备 | |
CN108984105B (zh) | 对网络存储设备中的复制任务进行分配的方法和设备 | |
CN109614242A (zh) | 一种计算能力共享方法、装置、设备及介质 | |
CN114237902A (zh) | 一种服务部署方法、装置、电子设备及计算机可读介质 | |
CN113703945A (zh) | 微服务集群的调度方法、装置、设备及存储介质 | |
CN110874344B (zh) | 数据迁移方法、装置及电子设备 | |
CN103970854B (zh) | Sap ecc端与sap bw端之间增量凭证信息同步方法 | |
CN106844021B (zh) | 计算环境资源管理系统及其管理方法 | |
CN105765569B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1154717 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |