负载均衡方法和装置与流程

文档序号:12719105阅读:172来源:国知局
负载均衡方法和装置与流程

本申请涉及计算机领域,具体涉及运维技术领域,尤其涉及负载均衡方法和装置。



背景技术:

负载均衡是提升服务器集群的承载能力的重要手段。用于存储数据例如在线搜索服务的搜索数据的索引数据库及其副本分布式地存储在服务器集群中,服务器集群中的服务器处理对存储在其上的索引数据库的用户的查询请求。由于索引数据库分布的不均匀性,导致在流量峰值时,部分服务器需要处理的对索引数据库的用户的查询请求过多,导致部分服务器响应用户的查询请求的时间过长,需要通过调整索引数据库在服务器上的分布来实现负载均衡。目前,通常是将利用率最高的服务器的开销最大的索引数据库迁移至利用率最低的服务器。

然而,当采用上述方式进行负载均衡时,一方面,由于运行有高开销的索引数据库的热点服务器的存在,会出现诸如调整后的新的分布与迁移前的分布相同的情况,导致调整后服务器的利用率的均衡性未得到任何实质上的改进,并且,调整后会出现新的热点服务器,依然存在热点服务器响应用户查询请求过长的问题,另一方面,采用单一的调整方式调整索引数据库在服务器上的分布,没有对不同的调整方式进行探索。



技术实现要素:

本申请提供了负载均衡方法和装置,用于解决上述背景技术部分存在的技术问题。

第一方面,本申请提供了负载均衡方法,该方法包括:执行预处理操作:从多个服务器中确定包含预设数量开销大于开销阈值的高开销索引数据库的热点服务器和包含的索引数据库的开销均小于开销阈值的冷服务器,其中,开销为服务器处理对索引数据库的查询请求使用的资源与服务器的资源的比例;将冷服务器上的索引数据库进行迁移,以及将高开销索引数据库迁移到冷服务器;确定对索引数据库在多个服务器上的分布进行调整后满足预设条件的最优调整方式,以及以最优调整方式对索引数据库在多个服务器上的分布进行调整,预设条件包括:服务器的利用率之间的差值之和最小,其中,服务器的利用率为服务器上的索引数据库的开销之和。

第二方面,本申请提供了负载均衡装置,该装置包括:预处理单元,配置用于执行预处理操作:从多个服务器中确定包含预设数量开销大于开销阈值的高开销索引数据库的热点服务器和包含的索引数据库的开销均小于开销阈值的冷服务器,其中,开销为服务器处理对索引数据库的查询请求使用的资源与服务器的资源的比例;将冷服务器上的索引数据库进行迁移,以及将高开销索引数据库迁移到冷服务器;探索单元,配置用于确定对索引数据库在多个服务器上的分布进行调整后满足预设条件的最优调整方式,以及以最优调整方式对索引数据库在多个服务器上的分布进行调整,预设条件包括:服务器的利用率之间的差值之和最小,其中,服务器的利用率为服务器上的索引数据库的开销之和。

本申请提供的负载均衡方法和装置,通过执行预处理操作,确定对索引数据库在多个服务器上的分布进行调整后满足预设条件的最优调整方式,以最优调整方式对索引数据库在多个服务器上的分布进行调整。一方面,预处理操作将高开销索引数据库均衡地分散在不同的服务器上,从而,避免了诸如调整后的新的分布与迁移前的分布相同而导致调整后服务器的利用率的均衡性未得到任何实质上的改进的问题,同时,也避免了调整后会出现新的热点服务器,依然存在热点服务器响应用户查询请求过长的问题,进而消除热点服务器对负载均衡过程的影响,为后续的对索引数据库在服务器上的分布的调整方式的探索提供更大的空间。另一方面,在消除热点服务器对负载均衡过程的影响的基础上,对索引数据库在服务器上的分布的调整方式进行多种方式的探索,探索出的最优的调整方式,从而,以最优的调整方式调整索引数据库在服务器上的分布,进一步平衡资源的利用率,实现负载均衡。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出了可以应用于本申请的负载均衡方法或装置的实施例的示例性系统架构;

图2示出了根据本申请的负载均衡方法的一个实施例的流程图;

图3示出了消除热点服务器的一个效果示意图;

图4示出了改进的索引数据库MOVE操作的一个效果示意图;

图5示出了索引数据库交换操作的一个效果示意图;

图6示出了深度搜索操作的一个效果示意图;

图7示出了根据本申请的负载均衡装置的一个实施例的结构示意图;

图8是适于用来实现本申请实施例的负载均衡装置的服务器的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用于本申请的负载均衡方法或装置的示例性系统架构。

如图1所示,系统架构可以包括服务器101、网络102、多个服务器103。服务器103可以为数据中心的机房中的服务器。网络102用以在服务器101和服务器103之间提供传输链路的介质。服务器103可以存储有用于存储线上服务例如在线搜索服务的数据的索引数据库,线上每天产生的海量数据经过清洗、处理、分析之后,建成不同的索引数据库。索引数据库分布及其副本分布式存储在多个服务器103中,每一个服务器103处理对存储在其上的索引数据库的用户的查询请求。服务器101可以执行预处理操作,向至少一部分服务器103发送与为消除多个服务器103中包含高开销的索引数据库的热点服务器对负载均衡过程的影响相关的指令,控制索引数据库在服务器103之间的迁移,消除热点服务器对负载均衡的影响。在执行预处理操作,之后,服务器101可以向至少一部分服务器103发送与探索索引数据库在服务器103上的分布进行调整的调整方式相关的指令,控制索引数据库在服务器103之间的迁移,从而,对调整方式进行探索,探索出多种调整方式,可以按照探索出的最优的调整方式,对索引数据库在多个服务器103上的分布进行调整,使得多个服务器103的利用率更加均衡,实现负载均衡。

请参考图2,其示出了根据本申请的负载均衡方法的一个实施例的流程图。该方法可以由服务器例如图1中的服务器101执行,相应地,负载均衡装置可以设置于服务器例如图1中的服务器101中。

步骤201,执行预处理操作。

在本实施例中,在对多个服务器上的索引数据库调整进行负载均衡时,经常会出现在将利用率最高的服务器的开销最大的索引数据库迁移到利用率最低的服务器之后,依然难以实现负载均衡的情况。例如,三个服务器的资源总量相同,三个服务器的利用率分别为60%,100%,50%,第一个服务器上运行10%、20%、30%的索引数据库,第二个服务器上运行开销均为50%的索引数据库,第三个服务器上运行开销为50%的索引数据库。在将利用率最高的服务器上的索引数据库迁移到利用率最低的服务器上时,即将第二个服务器上的开销为50%的数据库迁移到第三个服务器上,然而,调整后的三个服务器的利用率分别为60%,50%,100%,并没有使得服务器的利用率在均衡性上有任何实质上的改进,第三个服务器成为新的热点服务器,依然存在响应用户的查询请求的时间过长的问题。

在本实施例中,在对索引数据库在多个服务器上的分布的调整方式进行探索之前,可以首先执行预处理操作,在预处理操作中,可以首先确定包含预设数量开销大于开销阈值的高开销索引数据库的热点服务器和包含的索引数据库的开销均小于开销阈值的冷服务器。预设数量可以为至少两个。索引数据库的开销可以是指服务器处理对索引数据库的查询请求使用的资源与服务器所有的资源的比例。

例如,资源为CPU资源,可以将服务器处理对索引数据库的查询请求的使用的CPU资源与服务器的所有CPU资源的比例即CPU使用率大于40%的索引数据库定义为高开销索引数据库。可以首先从多个服务器中选取出难调的热点服务器。难调的热点服务器可以为包含至少两个高开销索引数据库的服务器。然后,可以将冷服务器上的索引数据库进行迁移,以及将热点服务器上的高开销索引数据库迁移到冷服务器。

在本实施例的一些可选的实现方式中,在预处理操作中,可以从冷服务器上选取出索引数据库,例如选取冷服务器上开销最大的索引数据库,将冷服务器上选取出的索引数据库迁移至利用率小于利用率阈值的服务器。

请参考图3,其示出了消除热点服务器的一个效果示意图。

在图3中,示出了服务器301、服务器302、服务器303。服务器301存储三个开销分别为10%、20%、30%的索引数据库,服务器302上存储开销均为50%的两个索引数据库,服务器303上存储开销为50%的索引数据库。将开销大于40%的索引数据库定义为高开销索引数据库。服务器302为存储两个高开销索引数据库的热点服务器。服务器301为未存储高开销索引数据库的冷服务器。在预处理操作中,可以将冷服务器即服务器301上开销为30%的索引数据库迁移到利用率较低的服务器303,将热点服务器即服务器302上一个开销为50%的高开销索引数据库迁移到冷服务器即服务器301上。

在本实施例中,通过预处理操作,一方面,将热点服务器上的高开销索引数据库均衡地分散在不同的服务器上,均衡了高开销索引数据库在服务器上的分布,从而,避免了诸如调整后的新的分布与迁移前的分布相同而导致调整后服务器的利用率的均衡性未得到任何实质上的改进的问题,同时,也避免了调整后会出现新的热点服务器,依然存在热点服务器响应用户查询请求过长的问题,进而消除热点服务器对负载均衡过程的影响。另一方面,为后续的对索引数据库在服务器上的分布的调整方式的探索创造了更大的空间,在后续的对索引数据库在服务器上的分布的调整方式的探索中,邻域状态搜索的空间和分支显著增多。

步骤202,确定最优调整方式,以及以最优调整方式调整索引数据库在服务器上的分布。

在通过步骤201的预处理操作之后,可以对索引数据库在服务器上的分布的调整方式进行探索。从而,探索出最优的调整方式,利用最优的调整方式对索引数据库在服务器上的分布进行调整,进一步平衡服务器的资源的利用率,到达负载均衡。在采用多种类型的操作对调整方式的探索的过程中,每进行一次操作,可以使得索引数据库在各个服务器的分布发生改变,得到一个相对于操作之前索引数据库在服务器上的分布的指示操作之后索引数据库在服务器上的分布的邻域状态。

在本实施例的一些可选的实现方式中,可以通过第一调整操作(也可称之为改进的索引数据库MOVE操作)来探索最优的调整方式。改进的索引数据库MOVE操作可以为:从服务器上选取出两个服务器作为第一服务器和第二服务器,可以将第一服务器上开销小于开销阈值的索引数据库迁移至第二服务器,例如,可以将第一服务器上开销最小的索引数据库迁移至第二服务器,得到一个邻域状态。

请参考图4,其示出了改进的索引数据库MOVE操作的一个效果示意图。

在图4中,示出了服务器401、服务器402、服务器403。在进行改进的索引数据库MOVE操作之前,索引数据库在服务器401、服务器402、服务器403上的分布为:服务器401上存储开销分别为10%、20%、50%的索引数据库,服务器402上存储开销为50%的索引数据库,服务器403上存储开销分别为30%、50%的索引数据库。在一次改进的索引数据库MOVE操作中,可以将服务器401上的开销最小的开销为10%的索引数据库迁移到服务器402,得到一个领域状态,即服务器401上存储开销分别为20%、50%的索引数据库,服务器402上存储开销分别为10%、50%的索引数据库,服务器403上存储开销分别为30%、50%的索引数据库。仅消耗了10%的服务器的I/O资源,带宽消耗小,同时,使得服务器的利用率更加均衡。

每进行一次改进的索引数据库MOVE操作,使得索引数据库在服务器上的分布发生改变,得到一个指示进行索引数据库MOVE操作之后索引数据库在多个服务器上的分布的领域状态。通过多次改进的索引数据库MOVE操作,可得到多个领域状态。可以从多个邻域状态中选取出满足预设条件例如服务器之间的利用率的差值之和最小的最优邻域状态。然后,可以将可以到达最优邻域状态的调整方式作为最优调整方式。从而,通过改进的索引数据库MOVE操作,进行对最优调整方式的探索。

在本实施例的一些可选的实现方式中,可以通过第二调整操作(也可称之为索引数据库交换操作)来探索最优的调整方式。索引数据库交换操作可以为:从多个服务器中选取出剩余利用率均小于剩余利用率阈值的两个服务器作为第三服务器和第四服务器。然后,可以分别从第三服务器和第四服务器上选取出索引数据库。可以将从第三服务器选取出的索引数据库迁移至第四服务器,以及将从第四服务器选取出的索引数据库迁移至第三服务器,得到一个经过索引数据库交换操作后指示索引数据库在多个服务器上的分布的邻域状态。

请参考图5,其示出了索引数据库交换操作的一个效果示意图。

在图5中,示出了服务器501、服务器502。在进行索引数据库交换操作之前,索引数据库在服务器501、服务器502上的分布为:服务器501上存储开销分别为50%、40%的索引数据库,服务器502上存储开销分别为30%、40%的索引数据库。服务器501、服务器502的剩余利用率分别为10%、30%,均小于剩余利用率阈值,无法将其他服务器上的索引数据库迁移至服务器501、服务器502。在一次索引数据库交换操作中,可以将服务器501上的开销为40%的索引数据库迁移到服务器502,将服务器502上的开销为30%的索引数据库迁移到服务器501,得到一个领域状态,即服务器501上存储开销分别为30%、50%的索引数据库,服务器502上存储开销均为40%的两个索引数据库,服务器501、502的利用率调整成为80%、80%,使得服务器501、502的利用率更加均衡。

每进行一次索引数据库交换操作,索引数据库在服务器上的分布发生改变,得到一个指示进行数据库交换操作之后的索引数据库在服务器上的分布的领域状态。通过多次索引数据库交换,可得到多个领域状态。可以从多个邻域状态中选取出满足预设条件例如服务器之间的利用率的差值之和最小的状态作为最优邻域状态。然后,可以将可到达最优邻域状态的调整方式作为最优调整方式。从而,通过索引数据库交换操作,进行对最优调整方式的探索。

在本实施例的一些可选的实现方式中,可以通过第三调整操作(也可称之为深度搜索操作)来探索最优的调整方式。深度搜索操作可以为:从多个服务器中选取出三个服务器作为第五服务器、第六服务器和第七服务器。可以分别从第五服务器和第六服务器上选取出索引数据库,将从第五服务器选取出的索引数据库迁移至第六服务器,以及将从第六服务器选取出的索引数据库迁移至第七服务器,得到指示在进行一次深度搜索操作后索引数据库在多个服务器上的分布的邻域状态。例如,选取出的第五服务器的利用率高于第六服务器,第六服务器的利用率高于第七服务器,可以将第五服务器上开销最大的索引数据库迁移到第六服务器,以及将第六服务器上开销最大的索引数据库迁移到第七服务器,得到一个邻域状态。

请参考图6,其示出了深度搜索操作的一个效果示意图。

在图6中,示出了服务器601、服务器602、服务器603。在进行深度搜索操作之前,索引数据库在服务器601、服务器602、服务器603上的分布为:服务器601上存储开销分别为30%、30%、40%的索引数据库。服务器602上存储开销分别为20%、50%的索引数据库。服务器603上存储一个开销为10%的索引数据库。在一次深度搜索操作中,可以将服务器601上开销为40%的索引数据库迁移到服务器602,将服务器602上开销为50%的索引数据库迁移到服务器603上,服务器601、服务器602、服务器603的利用率调整为均为60%,使得服务器601、服务器602、服务器603的利用率更加均衡。

每进行一次深度搜索操作,索引数据库在服务器上的分布发生改变,得到一个指示进行深度搜索操作之后的索引数据库在服务器上的分布的领域状态。通过多次深度搜索操作,可得到多个领域状态。可以从多个邻域状态中选取出满足预设条件例如服务器之间的利用率的差值之和最小的状态作为最优邻域状态。然后,可以将可到达最优邻域状态的调整方式作为最优调整方式。从而,通过深度搜索操作,进行对最优调整方式的探索。

在本实施例中,在确定出最优调整方式之后,可以以确定出的最优的调整方式对索引数据库在多个服务器上的分布进行调整。

例如,可以通过改进的索引数据库MOVE操作、索引数据库交换操作、深度搜索操作分别对最优的调整方式进行探索。然后,可以选取探索出最优的调整方式对索引数据库在多个服务器上的分布进行调整,从而使得多个服务器的利用率更加均衡,进一步平衡资源的利用率,进而增大服务器集群的吞吐量,加强服务器集群在流量高峰期的承载能力。

请参考图7,其示出了根据本申请的负载均衡装置的一个实施例的结构示意图,负载均衡装置包括:预处理单元701,探索单元702。其中,预处理单元701配置用于执行预处理操作:从多个服务器中确定包含预设数量开销大于开销阈值的高开销索引数据库的热点服务器和包含的索引数据库的开销均小于开销阈值的冷服务器,其中,开销为服务器处理对索引数据库的查询请求使用的资源与服务器的资源的比例;将冷服务器上的索引数据库进行迁移,以及将高开销索引数据库迁移到冷服务器;探索单元702配置用于确定对索引数据库在多个服务器上的分布进行调整后满足预设条件的最优调整方式,以及以最优调整方式对索引数据库在多个服务器上的分布进行调整,预设条件包括:服务器的利用率之间的差值之和最小,其中,服务器的利用率为服务器上的索引数据库的开销之和。

在本实施例的一些可选的实现方式中,预处理单元701包括:索引数据库迁移子单元(未示出),配置用于从冷服务器上选取出索引数据库;将冷服务器上选取出的索引数据库迁移至利用率小于利用率阈值的服务器。

在本实施例的一些可选的实现方式中,负载均衡装置还包括:第一调整方式确定单元(未示出),配置用于执行多次以下第一调整操作:从多个服务器中选取出第一服务器和第二服务器;从第一服务器上选取出开销小于开销阈值的索引数据库;将从第一服务器上选取出的索引数据库迁移至第二服务器,得到指示索引数据库在服务器上的分布的邻域状态;从得到的所有邻域状态中选取出满足预设条件的最优邻域状态;将最优邻域状态对应的调整方式确定为最优调整方式;第二调整方式确定单元(未示出),配置用于执行多次以下第二调整操作:从多个服务器中选取出剩余利用率均小于剩余利用率阈值的第三服务器和第四服务器;分别从第三服务器和第四服务器上选取出索引数据库;将从第三服务器选取出的索引数据库迁移至第四服务器,以及将从第四服务器选取出的索引数据库迁移至第三服务器,得到指示索引数据库在服务器上的分布的邻域状态;从得到的所有邻域状态中选取出满足预设条件的最优邻域状态;将最优邻域状态对应的调整方式确定为最优调整方式;第三调整方式确定单元(未示出),配置用于执行多次以下第三调整操作:从多个服务器中选取出第五服务器、第六服务器和第七服务器;分别从第五服务器和第六服务器上选取出索引数据库;将从第五服务器选取出的索引数据库迁移至第六服务器,以及将从第六服务器选取出的索引数据库迁移至第七服务器,得到指示索引数据库在服务器上的分布的邻域状态;从得到的所有邻域状态中选取出满足预设条件的最优邻域状态;将最优邻域状态对应的调整方式确定为最优调整方式

本申请还提供了一种服务器,该服务器可以包括图7所描述的负载均衡装置。该服务器可以配置有一个或多个处理器;存储器,用于存储一个或多个程序,一个或多个程序中可以包含用以执行上述步骤201-202中描述的操作的指令。当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述步骤201-202中描述的操作。

图8示出了适于用来实现本申请的负载均衡方法的服务器的结构示意图。

如图8所示,包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。CPU 801、ROM802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。

以下部件连接至I/O接口805:输入部分806;输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。

本申请中的上述各个步骤描述的过程可以被实现为计算机程序。该计算机程序可以承载在计算机可读介质上,该计算机程序包括用于执行流程图所示的方法的指令。该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。

本申请还提供了一种计算机可读介质,该计算机可读介质可以是服务器上所包括的;也可以是单独存在,未装配入服务器上。该计算机可读介质承载有一个或者多个程序,当一个或者多个程序被该服务器执行时,使得该服务器:执行预处理操作:从多个服务器中确定包含预设数量开销大于开销阈值的高开销索引数据库的热点服务器和包含的索引数据库的开销均小于开销阈值的冷服务器,其中,开销为服务器处理对索引数据库的查询请求使用的资源与服务器的资源的比例;将冷服务器上的索引数据库进行迁移,以及将高开销索引数据库迁移到冷服务器;确定对索引数据库在多个服务器上的分布进行调整后满足预设条件的最优调整方式,以及以最优调整方式对索引数据库在多个服务器上的分布进行调整,预设条件包括:服务器的利用率之间的差值之和最小,其中,服务器的利用率为服务器上的索引数据库的开销之和。

需要说明的是,上述计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包括或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以为多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包括的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请的构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

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