一种计算机的负载均衡方法及装置的制造方法

文档序号:9754818阅读:499来源:国知局
一种计算机的负载均衡方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机负载均衡领域,尤其涉及一种根据请求类型分发请求的计算机 负载均衡方法及装置。
【背景技术】
[0002] Internet的飞速发展给网络带宽和服务器带来巨大的挑战。从网络技术的发展来 看,网络带宽的增长远高于处理器速度和内存访问速度的增长。基于此,负载均衡成为计算 机发展的一种趋势。
[0003]负载均衡用在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源 中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目 的,使用带有负载平衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。负 载平衡服务通常是由专用软体和硬件来完成负载平衡最重要的一个应用是利用多台服务 器提供单一服务,这种方案有时也称之为〃服务器农场〃。通常,负载平衡主要应用于:Web网 站、高流量的文件下载网站、DNS服务、SOCKET长连接、HTTP连接、数据库连接等服务。集群一 般由一台服务器接受请求,并按照某种策略动态地分配到各节点服务器上进行处理。集群 的负载均衡策略是提高集群整体性能的关键,其目的是根据处理机的性能来分配与其相称 的任务,以最小化应用程序的执行时间,最大限度的利用各节点的处理能力,从而提高集群 系统的整体性能。
[0004] 常见的负载均衡算法包括两大类:一类是静态负载均衡算法,常用的如轮转法 (Round - Robin )、最小连接数法(Least-Connection)等,这些算法都没有考虑到用户请求 任务间的差异和集群内各节点服务器的性能差异及实际负载情况,无法充分利用各节点服 务器的处理能力,并不能有效地解决集群内各服务器间的负载均衡问题。另一类是动态负 载均衡算法,可以根据各节点服务器的实际情况动态分发用户请求。
[0005] 静态调度算法不能根据服务器的负载情况实时调整调度策略。普通动态不能根据 客户端请求内容调度,不能充分发挥服务器性能。

【发明内容】

[0006] 为克服现有技术中存在的上述问题,本发明的目的在于,提供一种服务器动态负 载均衡方法,包括:
[0007] 根据用户请求的URL应用层信息对接收的所述用户请求进行分类并发往相应的队 列;不同队列对应不同的服务器集群;
[0008] 采集各节点服务器的响应时间,并根据响应时间计算各节点服务器的当前负载权 值;
[0009] 采用加权轮转法,将相应队列的用户请求根据所述当前负载权值分发至对应集群 的节点服务器。
[0010] 优选的,每个所述服务器集群至少包括两个节点服务器。
[con]优选的,周期性的采集各节点服务器的响应时间。
[0012]优选的,所述根据用户请求的URL应用层信息对接收的所述用户请求进行分类包 括:
[0013] 根据用户请求的URL应用层信息对接收的所述用户请求分为静态文件请求型、DB 查询型、DB单事务型、DB多事务型、多媒体型以及电子商务型。
[0014] 优选的,所述动态负载均衡方法还包括:
[0015]
:计算各节 点服务器的初始负载权值Loading(Ri);
[0016] 其中,Lcpu(Ri)为CHJ处理速度,Lm(Ri)为内存容量,Li/o(Ri)为系统I/O速率, Lnet (Ri)为节点的网络接口速率,Ci表示节点服务器i的处理器数量;BASEcpu为基准CPU处 理速度、BASEm为基准内存容量、BASEi/o为基准I/O速率,BASEnet为基准网络接口速率,fi 为节点服务器i对应的可调系数,其中Σ f i = 1。
[0017] 本发明另一方面还提供了一种服务器动态负载均衡装置,包括:
[0018] 请求分类单元,用于根据用户请求的URL应用层信息对接收的所述用户请求进行 分类并发往相应的队列;不同队列对应不同的服务器集群;
[0019] 权值计算单元,用于采集各节点服务器的响应时间,并根据响应时间计算各节点 服务器的当前负载权值;
[0020] 请求分发单元,用于采用加权轮转法,将相应队列的用户请求根据所述当前负载 权值分发至对应集群的节点服务器。
[0021 ]优选的,每个所述服务器集群至少包括两个节点服务器。
[0022] 优选的,权值计算单元,用于周期性的采集各节点服务器的响应时间。
[0023] 优选的,请求分类单元用于根据用户请求的URL应用层信息对接收的所述用户请 求分为静态文件请求型、DB查询型、DB单事务型、DB多事务型、多媒体型以及电子商务型。
[0024] 优选的,所述动态负载均衡装置还包括:
[0025] 初始权值计算单元,用于根据
[0026]计算各节点服 ??.
;· ' 务器的初始负载权值Loading(Ri);
[0027] 其中,Lcpu(Ri)为CHJ处理速度,Lm(Ri)为内存容量,Li/o(Ri)为系统I/O速率, Lnet (Ri)为节点的网络接口速率,Ci表示节点服务器i的处理器数量;BASEcpu为基准CPU处 理速度、BASEm为基准内存容量、BASEi/o为基准I/O速率,BASEnet为基准网络接口速率,fi 为节点服务器i对应的可调系数,其中Σ f i = 1。
[0028] 本发明首先将不同请求内容的请求分发至不同的队列,之后根据各队列对应的集 群服务器内的各节点的当前负载权值将请求分发至节点服务器。这不仅克服了静态负载均 衡的缺点,能够实时根据节点服务器的负载进行分发,并且能够根据请求内容把相同的请 求分发到相同服务器上,能够充分发挥各种服务器的性能,实现最大限度的负载均衡。
【附图说明】
[0029] 为了更清楚地说明本发明实施例技术中的技术方案,下面将对实施例描述中所需 要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例, 对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得 其他的附图。
[0030] 图1为本发明方法流程图;
[0031] 图2为本发明算法框图;
[0032] 图3为本发明装置结构图;
[0033]图4为本发明系统结构图。
【具体实施方式】
[0034]下面结合附图分别对本发明的较佳实施例进行详细阐述,以使本发明的优点和特 征能更易于被本领域的技术人员理解,从而对本发明的保护范围作出更为清楚明确的界 定。
[0035] 为解决【背景技术】提出的问题,本发明实施例1公开了一种服务器动态负载均衡方 法,如图1所示,该方法包括:
[0036] S11、根据用户请求的URL应用层信息对接收的用户请求进行分类并发往相应的队 列;不同队列对应不同的服务器集群。
[0037] S12、采集各节点服务器的响应时间,并根据响应时间计算各节点服务器的当前负 载权值。具体的,可以周期性也可以实时或是根据用户的触发采集。或者当监测到目前有超 过一定数量的请求要分发时,出发采集节点发武器的响应时间。负载权值的顺序代表着优 先级的顺序,本发明会按照负载权值顺序决定分发优先级。
[0038] S13、采用加权轮转法,将相应队列的用户请求根据当前负载权值分发至对应集群 的节点服务器。根据各节点的响应时间可得到各节点的当前优先级,然后采用加权轮转法 对各个队列中的用户请求进行调度,即根据节点权值的大小按轮转方式将用户请求分发到 各节点上,权值越高的节点得到的用户请求就越多,每个节点所分配到的用户请求数按其 权值占节点权值总和的比例来确定。
[0039] 在本发明中,服务器集群的个数至少为两个,且每个服务器集群内的节点服务器 个数至少为两个。
[0040] 在云端的请求中,存在着大量的静态文件和对数据库的增删改查的请求,这使得 不同请求任务所消耗的系统资源差异可能很大,为了达到负载均衡的目的,需要先将用户 请求进行分类。对应的,本发明设置的每个服务器集群对应不同的请求类型,其中的节点服 务器用于处理同一类型的请求。
[0041] 本发明中根据用户的URL应用层信息将用户请求分为静态文件请求型、DB查询型、 DB单事务型、DB多事务型、多媒体型以及电子商务型。其中,
[0042]静态文件请求型:
[0043] 主要提供静态信息(如HTML页面及嵌入的对象),以及轻微动态网络发布服务或者 是一些log型的操作。
[0044] DB查询型:
[0045] 对于数据库仅仅是查询的操作,可以是一次或者多次,不涉及事务概念。
[0046] DB单事务型:
[0047] 对于数据库操作都包含在一次事务中。
[0048] DB多事务型:
[0049]对于数据库操作包含在多次事务中,每个事务可独立。
[0050]多媒体型:
[0051]提供音频和视频流媒体服务。这类服务一般通过特殊的服务器和网络协议连接。 [0052] 电子商务型:
[0053] 提供静态、动态和安全信息传输,主要面向电子商务应用。出于安全原因,一些动 态生成的数据需要通过安全途径进行传送,大部分情况下会使用SSL协议。加解密操作会消 耗大量的CPU资源,而进行数据库访问时又需要密集磁盘访问,因此这类服务也称为磁盘/ CPU密集型服务。
[0054] 根据之前所述,在收到用户请求后,首先根据其URL等应用层信息进行分类,然后 发往相应队列等候分发。为了满足异构集群的需求,队列内的请求分发采用加权轮转法 (WRR),以使每个节点服务器得到的各类请求数大致与其权重相似,为了尽可能避免节点负 载的不均衡情况,需要监测各节点服务器的真实负载状况,通过采集各节点服务器的响应 时间,可等效计算出各个节点服务器当前的负载权值,然后根据实际负载权值调整分发比 例。
[0055]算法框图如图2,其中:ServeHi)代表节点服务器i;Kn表示用户请求的分类类别, 包含每种请求对应的队列。
[0056] 需要说明的是,首次分发请求时,各节点服务器尚无响应时间等参数可以采集,因 此需要通过其他方式计算节点服务器的初始权值。本发明中,具体的根据不同server的环 境和处理能力来计算其相应的优先级或者说是权值。硬件资源对应用程序的影响因素主要 有:CPU处理速度、内存容量、系统I /0速率和网络带宽。为了表示各因素对权值的影响,本发 明在上述几个影响因素前加上一个因子,各节点初始权值的计算公式如下:
[0057]
[0058] 其中Lf(Ri)表示节点Ri某一参数的当前值,即公式中Lcpu(Ri)
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1