文档库 最新最全的文档下载
当前位置:文档库 › 基于动态自适应负载均衡的服务器集群优化策略

基于动态自适应负载均衡的服务器集群优化策略

38
基于动态自适应负载均衡的服务器集群优化策略
基于动态自适应负载均衡的服务器集群优化策略*
Load Balance Based Server Selection in Web Server Cluster System Scheme

浙江 衢州 324000) 侠 (衢州职业技术学院,
摘要 : 基于 LVS 的 Web 服务器集群负载均衡默认的加权最小连接调度算法, 提出后端服务器主动反馈负载, 负载均衡 器基于任务的权值分配调度的策略。针对 Web 服务器集群系统内部的动态自适应负载任务均衡调度策略, 能够有效加速 提升集群系统性能, 简化调度过程, 提高吞吐率。 Web 服务器响应速度、 关键词 : 服务器集群, 负载均衡, 自适应
Abstract:Based on LVS web server cluster load balancing default weighted least connection scheduling algorithm,a back-end server active feedback load,load balancer based on task weights allocation scheduling strategy has been proposed.According to the dynamic adaptation of the web server cluster system load balancing task scheduling strategy,it can effectively speed up the web server response speed and improve the performance of cluster system. Keywords:Web server cluster,load balance technology,self-adaption
在 Web 服 务 器 集 群 中 , Web 页 面 使 用 动 态 嵌 入 对 象 技 术 和数据库查询任 务 , 不 同 的 任 务 请 求 存 在 10 倍 到 100 倍 的 负 载量差异, 多台性能不一的服务器联合工作, 能否做到负载均衡 涉及到能否有效利用分布式系统的总处理能力,一个好的负载 均衡策略总是能最小化执行时间并限制数据传输的通信开销, 根据各个服务器实时处理能力分配相应的请求任务,最大程度 的利用各服务器的处理能力。
高密集的任务处理量可能导致负载均衡器过载, 成为系统瓶颈。 基 于 Linux 虚 拟 服 务 (LVS) 集群的加权最小连接调度算法 只考虑当前连接服务器节点的数量并把它作为参数,服务器当 前连接数不能够很好反映服务器的负载情况。进一步从系统性 能, 响应时间, 算法复杂性和开发成本等定性参数上剖析动态负 载均衡算法进而提高服务器集群性能是主流的发展趋势。负载 均衡器怎么实时和有效地获取后端各服务器节点的真实处理能 力和负载情况,将是负载均衡器能否均衡分配请求任务给后端 各真实服务器的主要影响因素。新的调度算法采用 CPU 占用率 和内存空闲率两个参数来描述服务器节点的负载情况。在分配任 务的过程中会充分考虑各服务器的性能和处理能力的差异, 让负 载均衡集群系统的性能达到最大化; 同时集群系统应该具有一定 的可伸缩性, 能根据实际需要动态的向集群系统中添加后端服务 器节点; 最后, 负载均衡集群系统还应该具有负载迁移功能, 能够 将过载服务器的任务迁移给相对空闲的服务器节点。负载均衡策 略关注三个规则, 分别是定位规则, 分配规则和选择规则。
1 LVS 集群负载均衡策略 (Linux Virture Server) 是由国防科技大学的章文嵩博 LVS
士发起, 经过不断改进发展, 已成熟应用于构建高性能、 可扩展的 负载均衡系统。传统服务器技术随着客户端请求数量的加大, 分 布式服务器终端会出现不同程度的负载量, 无法统一及时响应用 户请求。 搭建 CentOS 操作系统的 LVS (Linux Virtual Server) 集 群, 利用 Linux 中自带的负载均衡策略来均衡各应用服务器的用 户请求负载量, 通过集群技术提高数据检索效率, 减少 客 户 响 应 时间。 实际开发中, 在负载调度均衡服务器上配置加权最小连接 调度策略, 通 过 IPVS 实 现 基 于 直 接 路 由 的 负 载 均 衡 调 度 , 完成 用于数据检索的 Linux 集群系统配置。每台服务 器 节 点 相 应 的 权值显示了服务器节点的处理能力, 权值 W=C / R , C 表示服务 器节点的性能, R 表示当前任务连接数。算法基于服务器连接请 求的数量和服务器节点的性能指标作为参数来进行任务分配。
2
动态自适应反馈的负载均衡策略 动态自适应反馈的负载均衡策略将服务器自身性能值和其
动态负载值作为评估服务器作为叶子节点负载能力的指标。每 个叶子节点按照指定规则自适应地收集自身的负载信息,实时 将自己的负载信息发送到负载均衡器。动态的推送信息搜集方 式与传统负载均衡器去主动收集各个节点服务器的负载信息相 比, 降低了通信开销, 减少负载均衡器的负担。 分层负载均衡方法不仅让叶子节点具备真实完全的并行 性, 还让真实事务服务器具有完全分布的优点。此外, 它还提供 了在更高层次的负载均衡结构中使用聚合信息,以便快速响应 全局负载的实时变化。 为了避免调度程序瓶颈和减少信息流量, 将处理器的消息分组为簇,每个簇的处理器工作负载进行多级 平衡分层。 在这种方法的具体实现中, 主处理器把需求任务分配 给一组被称为 “监督员” 的选定处理器。每个 “监督员” 进一步将 分配的任务按照真实服务器处理能力划分为子任务。并将这些 子任务最后分配给相应簇的叶节点。 “监督员” 从叶节点收集真
图1
LVS 集群三层结构图
实服务器处理后的最终结果, 并把它们发送到主处理器。 需要强
《衢州新农村网站集群建设研究》 ( 2013072) * 衢州市科技计划项目

《工业控制计算机》 2015 年第 28 卷第 12 期 调的是当分层方法的性能在线性阵列和树型网络中被广泛接受 时, 却偶尔会失败于更复杂的拓扑结构。
39
集到的后端各服务器的负载冗余值进行循环遍历,如果某台服 务器的负载冗余值大于最小冗余值, 就将此服务器节点入树, 构 建一棵二叉排序树。 二叉排序树遍历。 对二叉排序树进行中序遍历, 形成一个 2) 递增的数列,每台服务器节点的权值将形成一组由小到大的递 增数列。 任务分配。 对服务器节点中序遍历后, 选择满足条件的服 3) 务器进行任务分配, 服务器节点分配任务后, 它的负载冗余值 R 和负载值 L 都会发生改变。
2.1 自适应负载均衡
对于集群系统中客户端请求任务在执行过程中所占用的计 算机资源不同。 综合考虑用户请求任务的类型差异, 以及用户对 资源需求类型和实时性需求的程度不同,将用户请求的任务分 为实时 I / O 消耗型任务和实时 CPU 消耗型任务队; 来进一步改 进最小连接调度算法。 提出一种新的动态负载均衡算法, 并对所 提出的算法的有效性进行了理论证明和试验验证。
2.1.1 自适应负载均衡数学模型
每个真实服务器自适应的收集自身负载信息, 根据当前运行 状态选择是否将负载信息 (各性能指标参数) 发送至负载均衡器; 负载均衡器基于全局信息执行任务调度。合理的负载均衡调度算 法动态适应各个服务器节点的实时负载, 能够保障决策的高效。 各服务器节点负载信息主要通过性能参数体现, 表示服务器 性能指标为 P (Ni) , (1, …, Ni 表示第 i 个服务器节点, i∈ 2, 3, n)
P =k1 *Pcpu +k2 *Pmemory +k3 *PDisc +k4 *Pbandwidth (Ni ) (Ni ) (Ni ) (Ni ) ( Ni )
其中 Pcpu 表示 CPU 的频率, Pmemory 表示内存容量, PDise 表示 磁盘可用空间, Pbandwinth 表示网络带宽,其 中 0≤ki≤1 表 示 各 个 指标被使用的权重系数。 当服务器配置到负载均衡集群系统后,服务器根据公式计 , 并将 P 值 算出自己的空载性能值 (即 所 有 都 为 1 时 性 能 值 P ) 发送给负载均衡器。 发送成功后, 每隔时间周期 T 就利用公式计 算服务器当前实时负载信息值发送给负载均衡器。在任何时间 片 T 内, 如果有任务调度请求到达负载均衡器, 负载均衡器将会 根据记录中的各个子节点信息来做出选择将请求任务分配给后 因为负载信息还未更新, 会存在两 端服务器。在时间周期 T 内, 种极端情况:一种后端某服务器节点已部分或全部完成分配任 务出现闲置; 另一种后端服务器先前任务还未完成, 又加载新任 务出现过载。 为更加高效的完成客户端请求任务, 有效预测每台 服务器节点所能承受的负载能力,引入负载冗余参数 R 评估在 某时刻子服务器节点 所 能 增 加 的 负 载 能 力 , ( S i) R =△i*P( / 0 Si) (Si) 其中 P0 表示服务器节点的空载性能值; P P 表示服务器节点 上一次提交的服务器节点负载值。实际的实验环境中负载信息 收集也需要时间,每个服务器节点实时参数变化可能导致负载 信息出现戏剧性抖动,为此负载信息采集时间周期定为 5~10s 之间。参照服务器节点满载时的 P 值利用公式计算出最小负载 冗余 值 Rmin, 当 服 务 器 节 点 的 实 时 负 载 冗 余 值 大 于 Rmin 时 , 可以 分配任务, 否则为避免过载拒绝 任 务 。 (R-Rmin) 值越大, 说明该 服务器节点越空闲, 负载均衡器在分配任务时, 尽量选择空闲服 务器节点可以更加高效的服务于客户端。
图2 负载均衡处理流程图
2.3 动态自适应反馈的负载均衡策略性能分析与评估
采用集群系统的负载均衡技术能从整体上提高系统性能, 缩 短对用户任务请求响应时间。进一步考虑提升单台服务器工作效 率,那么整个集群系统对用户的响应效率又将得到更好的提高。 在单机系统性能的改进方面,最适合移植的方法是缓存方法, 采 用 Cache 的方法,并利用老化算法来设计实现我们自己的缓存 结构,很好地优化了后端 Web 应用服务器的运行速度和响应速 度。 为测试系统效率, 搭建 3 台服务器节点, 采用基于直接路由方 式构建 Linux 虚拟服务器集群, 采用 WAS (Microsoft Web Ap作为模拟用户压力的测试工具, 选择加权 plication Stress Tool) 最小连接调度 (wlc) 算法作为对比其系统响应时间。实验依次以 100、 200 到 700 的用户请求分 7 组进行模拟测试。
表1 实验数据表 (响应时间以 MS 计)
3
结束语 针对 LVS 的 Web 服务器集 群 负 载 均 衡 算 法 中 默 认 的 加 权
最小连接调度算法存在负载不均衡问题, 在 LVS 中集成的加权最 小连接调度算法的基础上, 提出改进和优化策略。 ①提出一种新的 权值分配调度算法,负载均衡服务器请求后端各服务器的负载情 况,通过获取它们的 CPU 利用率和内存空闲率来计算新的权值 并写入负载均衡器管理模块中,负载均衡器根据新的权值来分配 用户端的请求任务。 由于 ②提出动态自适应反馈的负载均衡策略, 采用新的权值分配调度算法,负载均衡器需要获取后端各服务器 的负载情况信息, 这样增加了负载均衡器的负担, 采用让后端各子 服务器周期性的向负载均衡器主动反馈负载信息,负载均衡器监 听并获取子服务器负载信息值, 进而计算新的权值, 再结合各服务 器的负载冗余值进行任务分配。这样更好的加速了系统响应用户 请求任务的反馈。 通过改进后的负载均衡策略, 有效的提高了集群 系统的吞吐量, 系统对用户的响应时间明显缩短。 改进后算法是在任务量达到一定量时才能体现出优越性, 进一步我们需要找到转折点, 考虑任务量对算法的影响基于不
(下转第 41 页)
2.1.2 负载调度二叉树算法实现
数据结构中明确定义了二叉排序树及相应排序算法,按照 二叉排序树中序遍历算法,得到的中序数列是一个递增的有序 数列。 结合二叉排序树特性实验中, 首先采用二叉排序树算法进 行负载冗余值排序,对负载均衡器收集到的后端各服务器的 (R-Rmin) 值进行循环遍历, 如 果 节 点 服 务 器 的 该 值 大 于 0, 就将 此服务器节点入树, 构建一棵二叉排序树; 其次, 对二叉排序树 进行中序遍历, 形成一个递增的数列, 每台服务器节点的权值将 形成一组由小到大的递增数列; 最后对服务器节点中序遍历后, 选择满足条件的服务器进行任务分配,服务器节点分配任务后 (R-Rmin) 值会随即变化。
2.2 负载均衡流程 二叉排序树算法进行负载冗余值排序。对负载均衡器收 1)

《工业控制计算机》 2015 年第 28 卷第 12 期 口通信程序,完成车辆检测信息和信号控制状态在计算机和单 片机间的传输。
41
在图 3 中, VB.NET 用到的主要函数示例如下: / /创 建 实 例 , 打 开 vissim 软件; vis.LoadNet(fileName) / / 加载路网和配置文件; sglContr = vis.Net.SignalControllers / / 定义信号机组; sglContrGroup = vis.Net.SignalControllers(1).SignalGroups //
vis = New VISSIM_COMSERVERLib.Vissim
创建信号机实例;
3
仿真系统控制软件实现 仿 真 系 统 控 制 软 件 对 VISSIM 二 次 开 发 , 建 立 其 与 外 部 通
信的数据接口。 在硬件平台的基础上, 仿真系统控制软件结合信 号控制机接口设备连接交通仿真软件和信号控制机。
3.1 仿真系统控制软件结构
仿真系统控制软件主要包括仿真控制模块、交通路网显示 模块、 通信模块和评价指标显示模块四部分。 仿真控 制 模 块 。 仿 真 控 制 模 块 主 要 功 能 是 对 VISSIM 仿 1) 真的控制, 包括启动、 停止、 路网的加载和仿真参数的设置等。 交通路网显示模块。 交通路网显示模块功能是显示 VISSIM 2) 加载的路网数据信息, 包括检测器信息、 路段属性、 信号机编号 和名称等内容。 随着仿真的运行, 该模块中信息始终与路网中交 通元素同。 通信模块。通信模块由串口直接与信号控制机接口设备 3) 交换检测器信息和灯色状态控制信息。 评价指标显示模块。评价指标显示模块功能是为评价信 4) 号机控制策略提供数据支持, 为进一步优化交通控制算法、 改进 控制策略提供指导。
For i = 0 To n lks(i) = lkss.GetLinkByNumber(i + 1) vehicles(i) = lks(i).GetVehicles / / 用于将路网上的车辆与各路段相对应; sglContrGroup(sglContrGroup.Count - 1).AttValue(″redend″) = 1 Next / / 根据信号机返回的信号灯状态控制 vissim 中灯的状态; For k = 1 To vehicles(0).Count vehicle = vehicles(0)(k) If Not (vehicle Is Nothing) Then ListBox1.Items.Add(″link(1) Speed= ″ & vehicle.AttValue(″ speed″)) End If Next / / 读取、 记录路网上某路段车辆的信息; System.Threading.Thread.Sleep(100) / / 控制仿真速度。
4
结束语 交通现场仿真通过信号控制机接口设备和仿真系统控制软
3.2 VISSIM 仿真控制 VISSIM 可通过使用 dll 接口来调用外部信号控制机,在每
个仿真运行期间通过加载动态链接库文件实现与信号控制机的 通信, 包括逻辑控制信息和数据信息。 在仿真过程中, VISSIM 会在每个时间步长里以一定的刷新 频率与信号控制机通信。该过程分为两步: 第一步, 将仿真环境检测数据将传送至 dll 文件中; 第二步, 信号控制机根据控制逻辑运算返回下一仿真时刻信 号灯状态至 dll 文件, VISSIM 以一定仿真步长更新信号灯状态。
件将实际的信号控制系统引入交通仿真软件,实现了仿真软件 的车辆检测信息和信号控制机的信号灯色状态控制信息的实时 交互, 构建了对交通算法和控制逻辑的测试平台。 对于给定的交通现场, 可以在路网环境中检验控制方案, 直 至方案完善, 能够达到预期的控制效果再应用到实际的现场, 以 减少对现状交通的影响。 也可以检验当路网中出现如交通事故、 道路维修等突发状况,致使某些道路不能通行时的现状交通条 件对交通需求的满足能力, 为管理部门提供决策依据。 参考文献
PTV VISSIM5.40 User Manual [ K] .German:Planung TransPort [ 1] Verkehr AG,2011 PTV VISSIM5.20 -05 COM 接 口 用 户 手 册 .German:Planung [ 2] [ K] TransPort Verkehr AG,2009 .北 京 : [ 3] 刘博航, 张通, 等 .交 通 仿 真 实 验 教 程 [ M] 人民交通出版社, 2012 .系 统 仿 真 学 [ 4] 魏明, 杨方廷, 曹 正 清 .交 通 仿 真 的 发 展 及 研 究 现 状 [ J] 2003 1179-1183 报, ( 8) : SITRAFFIC MCU-6 交通信号控制器使用手册 .German:SIEMENS, [ 5] [K] 2007 .北 京 : [ 6] 夏敏捷, 高 艳 霞 .Visual Basic.NET 程 序 设 计 基 础 教 程 [ M] 清 2014 华大学出版社,
[ 7] 任福田, 刘小明, 荣建 .交通工程学 [ M] 人民交通出版社, .北京: 2010
3.3 仿真系统控制软件工作流程
仿真系统控制软件程序流程图如图 3 所示。
图3
仿真系统控制软件程序流程图
[收稿日期: 2015.8.24]
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(上接第 39 页) 明: 昆明理工大学, 2011,4 [ 2] 章文篙 .内核中的连接调度算法 [ EB / OL] .http: / / Zh.linuxvirtualserV-
同的任务量选择最优算法,但是否会由此提升决策复杂度或者 如何解决是进一步实验考虑问题。 同时, 对于用户的请求任务消 耗计算机资源的不同, 有的是消耗计算机 I / O 资源的任务, 有的 则是消耗计算机 CPU 资源的计算型任务。 针对用户请求任务的 不同, 进一步将提出基于任务划分的动态负载均衡策略, 关键研 究就是怎么高效判断用户任务的类型。 参考文献
[1 ] 陈 何 雄 . 基 于 Web 应 用 的 LVS 动 态 负 载 均 衡 调 度 策 略 研 究 [ D] .昆
er.org / node / 35
[ 3] 莫志超, 张未展, 王军, 等 .基 于 云 计 算 的 P2P 流 媒 体 服 务 器 集 群 部 署算法 [ J] ( 2) .计算机应用, 2014 [ 4] 赵鑫, 王伟, 张文博, 等 .共 享 式 Web 应 用 服 务 器 集 群 的 资 源 整 合 方 法研究 [ J] ( 1) .计算机科学与探索, 2013 邓珍荣, 唐兴 兴 , 黄文明, 等 .一 种 Web 服 务 器 集 群 负 载 均 衡 调 度 算 [ 5] 法 [ J] ( 10) .计算机应用与软件, 2013 [收稿日期: 2015.7.1]

基于动态自适应负载均衡的服务器集群优化策略
作者: 作者单位: 刊名: 英文刊名: 年,卷(期): 任侠 衢州职业技术学院,浙江 衢州,324000 工业控制计算机 Industrial Control Computer 2015,28(12)
引用本文格式:任侠 基于动态自适应负载均衡的服务器集群优化策略[期刊论文]-工业控制计算机 2015(12)

相关文档
相关文档 最新文档