集群系统负载均衡的方法和系统的制作方法

文档序号:9290138阅读:425来源:国知局
集群系统负载均衡的方法和系统的制作方法
【技术领域】
[0001]本发明涉及集群系统技术领域,特别涉及一种集群系统负载均衡的方法和系统。
【背景技术】
[0002]Linux虚拟服务器(Linux Virtual Server,简称LVS)集群系统主要由负载均衡器(Load Balancer)、服务器池(Server Pool)和后端的存储设备(Storage Device)组成。其中,服务器池通过负载均衡器映射给前端,前端看到的是一个高性能、高可用的虚拟服务器,前端接收TCP/IP请求并发送给负载均衡器,负载均衡器将请求均衡的分配给服务器池中的真实服务器,即使服务器池中的某一台服务器发生了故障,对前端的服务也不会产生影响。
[0003]LVS是一个开源项目,采用IP层的负载均衡调度。目前,LVS集群系统主要采用加权最小连接数的负载均衡策略。该负载均衡策略是单纯以连接数来表示服务器的负载状况,负载均衡器将前端的请求分配给具有最小连接数的服务器。
[0004]经本申请发明人研究发现,由于不同的请求所需要的服务器资源是不同的,因此服务器的连接数并不能真实、准确地反映服务器的负载状况,在某些情况下,现有负载均衡策略反而会造成服务器超载。

【发明内容】

[0005]为了解决上述技术问题,本发明提供一种集群系统负载均衡的方法和系统,以克服现有负载均衡策略不能准确反映服务器负载状况的不足。
[0006]为了达到本发明目的,本发明提供了一种集群系统负载均衡的方法,包括:
[0007]获取各服务器节点的连接数,获取各服务器节点的处理利用率和内存占用率;
[0008]根据所述连接数、处理利用率和内存占用率,计算各服务器节点的负载率;
[0009]将接收到的任务请求分配给负载率最低的服务器节点。
[0010]进一步地,所述获取各服务器节点的连接数具体为,负载均衡器获取自身监测并记录的各服务器节点的连接数。
[0011]进一步地,所述获取各服务器节点的处理利用率和内存占用率具体为,负载均衡器接收各服务器节点发送的处理利用率和内存占用率。
[0012]进一步地,根据所述连接数、处理利用率和内存占用率计算各服务器节点的负载率具体为,将服务器节点的连接数、处理利用率和内存占用率相乘,得到所述服务器节点的负载率。
[0013]进一步地,所述处理利用率是指,服务器节点的处理器单位时间内处理用户进程的时间与处理核心进程的时间之比,所述内存占用率是指,服务器节点的处理器单位时间内内存资源使用量与内存资源总量之比。
[0014]为了达到本发明目的,本发明还提供了一种集群系统负载均衡的系统,包括负载均衡器和服务器池,服务器池包括若干个服务器节点,负载均衡器与每个服务器节点连接,
[0015]负载均衡器,用于获取各服务器节点的连接数,获取各服务器节点的处理利用率和内存占用率,根据所述连接数、处理利用率和内存占用率,计算各服务器节点的负载率,将接收到的任务请求分配给负载率最低的服务器节点。
[0016]进一步地,所述负载均衡器包括请求接收模块、记录模块、性能模块、负载计算模块和请求发送模块,其中,
[0017]请求接收模块,用于接收前端发送的任务请求,并将任务请求发送给请求发送模块;
[0018]记录模块,用于监测并记录各服务器节点的连接数,并将各服务器节点的连接数发送给负载计算模块;
[0019]性能模块,用于获取各服务器节点的处理利用率和内存占用率,并将各服务器节点的处理利用率和内存占用率发送给负载计算模块;
[0020]负载计算模块,与所述记录模块和性能模块连接,用于接收所述连接数、处理利用率和内存占用率,根据连接数、处理利用率和内存占用率计算各服务器节点的负载率,将负载率最低的服务器节点发送给请求发送模块;
[0021]请求发送模块,与所述请求接收模块和负载计算模块连接,用于接收所述任务请求和负载率最低的服务器节点,将所述任务请求发送给所述负载率最低的服务器节点。
[0022]进一步地,所述服务器节点包括任务接收模块、任务处理模块和监测模块,其中,
[0023]任务接收模块,与负载均衡器的请求发送模块连接,用于接收所述任务请求,将任务请求发送给任务处理模块;
[0024]任务处理模块,与任务接收模块连接,用于接收所述任务请求,对任务进行处理;
[0025]监测模块,与任务处理模块和负载均衡器的性能模块连接,用于实时获取任务处理模块的处理利用率和内存占用率,并将处理利用率和内存占用率发送给负载均衡器的性能丰吴块。
[0026]进一步地,所述根据连接数、处理利用率和内存占用率计算各服务器节点的负载率具体为,将服务器节点的连接数、处理利用率和内存占用率相乘,得到所述服务器节点的负载率。
[0027]进一步地,所述处理利用率是指,服务器节点的处理器单位时间内处理用户进程的时间与处理核心进程的时间之比,所述内存占用率是指,服务器节点的处理器单位时间内内存资源使用量与内存资源总量之比。
[0028]本发明提供了一种集群系统负载均衡的方法和系统,采用负反馈机制,并引入服务器节点的处理利用率和内存占用率参数来表征服务器节点的负载状况,更加真实准确地反映了服务器节点的负载状况,有效克服了现有负载均衡策略不能准确反映服务器负载状况的不足,不仅能够提高集群系统整体的吞吐率,而且能够提高集群系统整体的效率和均衡。
[0029]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
【附图说明】
[0030]附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
[0031]图1为本发明集群系统负载均衡的方法的处理流程图;
[0032]图2为本发明集群系统负载均衡的系统的结构示意图;
[0033]图3为本发明负载均衡器和服务器节点的结构示意图。
【具体实施方式】
[0034]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0035]在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0036]经本申请发明人研究发现,现有负载均衡策略中采用的连接数参数并不能真实、准确地反映服务器的负载状况,在某些情况下,现有负载均衡策略反而会造成服务器超载。由于不同的任务请求所需要的服务器资源是不同的,因此存在服务器节点的连接数少但其处理利用率或内存占用率非常高的情况。在该状况下,服务器节点实际上不具有即时处理能力,新的任务请求只能等到服务器节点完成相应处理并释放资源后才能得到处理。显然,如果服务器节点在该状况下仍持续接收到新任务请求,不仅会导致服务器节点持续超载,而且有可能导致服务器节点处于假死状态。为此,本发明提出一种负反馈机制的负载均衡方法,应用于LVS集群系统,采用连接数、处理利用率和内存占用率等参数来真实、准确地反映服务器节点的负载状况,有效克服现有负载均衡策略可能造成服务器超载的技术缺陷。
[0037]图1为本发明集群系统负载均衡的方法的处理流程图。如图1所示,本发明集群系统负载均衡的方法包括:
[0038]步骤1、获取各服务器节点的连接数,获取各服务器节点的处理利用率和内存占用率;
[0039]步骤2、根据连接数、处理利用率和内存占用率,计算各服务器节点的负载率;
[0040]步骤3、将接收到的任务请求分配给负载率最低的服务器节点。
[0041]本发明中,处理利用率是指,处理器单位时间内处理用户进程的时间与处理核心进程的时间之比,处理利用率越低,表明处理器当前越空闲,而处理利用率越高,表明处理器当前越繁忙。内存占用率是指,处理器单位时间内内存资源使用量与内存资源总量之比,内存占用率低时,表明有较多的内存资源可供分配给新的请求,而内存占用率高时,表明可供分配给新的请求的内存资源较少。实际上,处理利用率和内存占用率在一定程度上反映了服务器节点的响应能力和处理能力。对于响应能力来说,处理利用率低和内存占用率低意味着服务器节点能够即时处理新请求,对于处理能力来说,处理利用率低和内存占用率低意味着服务器节点有足够的资源处理新请求。本发明通过引入服务器节点的响应能力和处理能力参数来表征服务器节点的负载状况,可以真实、准确地反映服务器节点的负载状况,因此使得本发明负载均衡策略能够提高集群系统整体的吞吐率,进而提高集群系统整体的高效和均衡。
[0042]本发明中,服务器节点的负载率可以采用将连接数、处理利用率和内存占用率相乘的计算方式。例如,假设某个集群系统的服务器存储池中有ServerO、ServerU
Server2、......、ServerN共N+1个服务器节点,简称为SO-SN。URm表示服务器节点m的处理利用率,UCm表示服务器节点m的内存占用率,CNm表示服务器节点m的当前连接数,则服务器节点m的负载率Sm可以为:
[0043]Sm = URmXUCmXCNm, O ^ m ^ N
[0044]负载均衡器完成各服务器节点的负载率计算后,如果服务器节点η的负载率最小,那么服务器
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1