论文部分内容阅读
引言:本文对负载均衡技术原理及算法进行分析,在选课系统中采用了处理能力均衡和加权最小连接均衡相结合的算法,很好地解决了在选课高峰期系统出现网络拥堵问题,提高了系统的负载承受能力。
目前高校的网上在线选课系统中,Web服务器的服务能力已经不能满足实际客户访问需要,所以,现在在大型应用系统中多采用服务器集群,为用户提供并发服务。集群服务器的布署要考虑如何解决任务在多个Web服务器上的均衡分配问题。如果出现某台服务器过忙而不能及时响应用户访问,而其他服务器却因用任务不足未充分发挥处理能力的情况,就降低了服务器集群的整体响应能力,形成一个较严重的问题,故此,负载均衡技术应运而生。
一、负载均衡的定义
所谓负载就是指被分配到各个Web服务器节点上并行去执行的子任务,是一个抽象的概念,它描述的是系统的闲忙程度。让负载均衡地分配到并行系统的各个服务器节点上称为负载均衡。负载均衡可以从以下两个方面来理解:第一,将大量的服务数据流量或并发访问分配到多台Web服务器上,缩短系统的响应时间,减少客户端等待时间;第二,当网络中出现负载不均衡时,进行负载移动,把单个负载重的节点的任务转移到到其他节点上,作服务并行处理,从而让系统处理能力得到大幅度提升。所以,负载均衡(Load Balancing)技术就是采用一定的分配策略来平衡各个Web服务器节点上的负载任务,使其服务保持基本相当。
二、负载均衡目前解决的问题
目前负载均衡将要解决的主要问题有以下几点:
第一, 解决Web服务器拥堵现象,服务能够就近得到实现,实现与地理位置要素的无关性。
第二, 能够为客户端提供更高质量的访问服务。
第三, 提高Web服务器端响应客户请求的速度。
第四, 可以最大程度地提高Web服务器端与其他系统资源的利用率。
第五, 解决网络单点故障问题,网络中关键部位的设备出现故障时会导致整个系统无响应,增加冗余设备会避免单点故障。
三、负载均衡在选课系统中的架构
本文所研究的网上在线选课系统中,学生通过客户端向集群Web服务器发送请求后,交换机与负载均衡器接受服务的请求,通过相应的负载均衡分配算法选定一台Web服务器来响应当前的请求,接受访问请求的Web服务器与后台数据库SQL Sever 2000连接,将最终请求数据返回给客户端。
根据高校网上在线选课服务平台设计目标与网络服务访问量的需求,确定的负载均衡总体规划方案是:客户端的访问通过网络防火墙和交换机,然后再经过负载均衡器引导给某台Web服务器,负载均衡器负责请求服务数据流量分配,它通过动态服务器域名解析实现多台Web服务在网络中动态分担流量;这样可以提高整体网络的访问速度和稳定性,考虑到选课系统是用静态页面与动态页面技术,需要在Web服务器与数据库服务器之间连接一台应用服务器,来处理访问与请求的数据和静态页面,并把生成的静态页面能够自动分配给多台Web服务器;这样部署方案的优势主要体现在:多台Web服务器之间成互相存储与备份,当其中一台Web服务器出设备硬件故障,但是并不影响其它任何一台Web服务的应用和访问;当SQL Server数据库服务器出现问题时,也同样不会对Web服务器的应用和访问产生影响,数据库服务器之间还是能够实现访问的数据同步,即是数据库双存储的原理。
四、负载均衡实现算法
负载均衡的核心内容是一种服务性调度寻优算法,即是指将各个子服务任务比较均衡的分布给不同的Web服务器节点上并行处理,从而使各个服务器的利用达到最大程度的均衡。算法阐述如下:
(一) 基本粒子群算法
在粒子群算法中,每个个体称为“粒子”,代表着一个潜在的解,多个粒子共存,合作寻优。每个粒子根据自身的历史最优值和种群的历史最优值,在解空间中向更好的位置飞行,搜索最优解。
基本粒子群算法的数学模型如下:
设搜索空间为D维,总粒子数为n. 第i个粒子位置表示为向量 ;第i个粒子个体历史最优位置记为 ;种群历史最优位置 为所有的 中的最优;第i个粒子的位置速度为向量 .每个粒子的位置按下式公式进行更新:
(1)
(2)
(二) 引入混沌优化的粒子群算法
混沌运动能在一定范围内按其自身“规律”不重复遍历所有状态。利用这种遍历性来初始化粒子,可以优化粒子群算法的粒子初始分布,加强算法的全局搜索能力。
一个典型的混沌系统是由Logistic方程产生:
(3)
高鹰等将混沌优化思想引入到了粒子群优化算法中,提出了混沌粒子群优化算法(CPSO)。 混沌粒子群算法的基本思想主要体现在以下两个方面:
1.采用混沌序列初始化粒子的位置和速度,既没有改变粒子群算法初始化时有的随机性,又利用了混沌提高了粒子的种群多样性和搜索遍历性。在产生大量初始群体的基础上,择优出粒子群算法的初始群体,加强算法的全局搜索能力。
2.以当前整个粒子群迄今为止搜索到的最优位置为基础产生混沌序列,把产生的混沌序列中的最优位置粒子替代当前粒子群中的一个粒子的位置。 引入混沌序列的搜索算法可在迭代中产生局部最优解的许多邻域点,以此帮助惰性粒子逃离局部极值点,并快速搜寻到全局最优解。
混沌粒子群优化算法在进行负载均衡分配过程的具体实现步骤如下:
第一步:初始化设置最大允许迭代次数或误差精度,以及混沌粒子群优化算法相关参数:惯性权重、学习因子。
第二步:初始化粒子的位置和速度:
1.随机产生一个n维的每个分量数值在0-1之间的向量 ,n为目标函数中的变量个数,根据式(3),得到N个向量 ;
2.将 的各个分量载波到变量的取值区间;
3.计算粒子群的适应度,并从N个初始群体中选择性能较好的M个解作为初始种群,随机产生M个初始速度;
第三步:如果粒子适应度优于其个体极值 , 更新为新位置;如果某个体极值优于全局极值 , 更新为新位置;
第四步:根据公式(1)~(2)更新粒子的位置和速度;
第五步:对最优位置 ,施加混沌扰动. 将 映射到方程(4)的定义域[0,1]. 然后,用Logistic方程进行迭代产生混沌变量序列 ,再把产生的混沌变量序列通过逆映射返回到原解空间,得:
在原解空间对混沌变量经历的每一个可行解 计算其适应度,得到性能最好的可行解 ;
第六步:用 取代当前群体中任意一个粒子的位置;
第七步:若满足停止条件,则搜索停止,输出全局最优位置,否则返回第三步。
(作者单位:临沂大学)
作者简介
王浩,1993年5月生,山东省兰陵县人,临沂大学2012级软件工程专业本科生。
高宗振:本文指导教师。
目前高校的网上在线选课系统中,Web服务器的服务能力已经不能满足实际客户访问需要,所以,现在在大型应用系统中多采用服务器集群,为用户提供并发服务。集群服务器的布署要考虑如何解决任务在多个Web服务器上的均衡分配问题。如果出现某台服务器过忙而不能及时响应用户访问,而其他服务器却因用任务不足未充分发挥处理能力的情况,就降低了服务器集群的整体响应能力,形成一个较严重的问题,故此,负载均衡技术应运而生。
一、负载均衡的定义
所谓负载就是指被分配到各个Web服务器节点上并行去执行的子任务,是一个抽象的概念,它描述的是系统的闲忙程度。让负载均衡地分配到并行系统的各个服务器节点上称为负载均衡。负载均衡可以从以下两个方面来理解:第一,将大量的服务数据流量或并发访问分配到多台Web服务器上,缩短系统的响应时间,减少客户端等待时间;第二,当网络中出现负载不均衡时,进行负载移动,把单个负载重的节点的任务转移到到其他节点上,作服务并行处理,从而让系统处理能力得到大幅度提升。所以,负载均衡(Load Balancing)技术就是采用一定的分配策略来平衡各个Web服务器节点上的负载任务,使其服务保持基本相当。
二、负载均衡目前解决的问题
目前负载均衡将要解决的主要问题有以下几点:
第一, 解决Web服务器拥堵现象,服务能够就近得到实现,实现与地理位置要素的无关性。
第二, 能够为客户端提供更高质量的访问服务。
第三, 提高Web服务器端响应客户请求的速度。
第四, 可以最大程度地提高Web服务器端与其他系统资源的利用率。
第五, 解决网络单点故障问题,网络中关键部位的设备出现故障时会导致整个系统无响应,增加冗余设备会避免单点故障。
三、负载均衡在选课系统中的架构
本文所研究的网上在线选课系统中,学生通过客户端向集群Web服务器发送请求后,交换机与负载均衡器接受服务的请求,通过相应的负载均衡分配算法选定一台Web服务器来响应当前的请求,接受访问请求的Web服务器与后台数据库SQL Sever 2000连接,将最终请求数据返回给客户端。
根据高校网上在线选课服务平台设计目标与网络服务访问量的需求,确定的负载均衡总体规划方案是:客户端的访问通过网络防火墙和交换机,然后再经过负载均衡器引导给某台Web服务器,负载均衡器负责请求服务数据流量分配,它通过动态服务器域名解析实现多台Web服务在网络中动态分担流量;这样可以提高整体网络的访问速度和稳定性,考虑到选课系统是用静态页面与动态页面技术,需要在Web服务器与数据库服务器之间连接一台应用服务器,来处理访问与请求的数据和静态页面,并把生成的静态页面能够自动分配给多台Web服务器;这样部署方案的优势主要体现在:多台Web服务器之间成互相存储与备份,当其中一台Web服务器出设备硬件故障,但是并不影响其它任何一台Web服务的应用和访问;当SQL Server数据库服务器出现问题时,也同样不会对Web服务器的应用和访问产生影响,数据库服务器之间还是能够实现访问的数据同步,即是数据库双存储的原理。
四、负载均衡实现算法
负载均衡的核心内容是一种服务性调度寻优算法,即是指将各个子服务任务比较均衡的分布给不同的Web服务器节点上并行处理,从而使各个服务器的利用达到最大程度的均衡。算法阐述如下:
(一) 基本粒子群算法
在粒子群算法中,每个个体称为“粒子”,代表着一个潜在的解,多个粒子共存,合作寻优。每个粒子根据自身的历史最优值和种群的历史最优值,在解空间中向更好的位置飞行,搜索最优解。
基本粒子群算法的数学模型如下:
设搜索空间为D维,总粒子数为n. 第i个粒子位置表示为向量 ;第i个粒子个体历史最优位置记为 ;种群历史最优位置 为所有的 中的最优;第i个粒子的位置速度为向量 .每个粒子的位置按下式公式进行更新:
(1)
(2)
(二) 引入混沌优化的粒子群算法
混沌运动能在一定范围内按其自身“规律”不重复遍历所有状态。利用这种遍历性来初始化粒子,可以优化粒子群算法的粒子初始分布,加强算法的全局搜索能力。
一个典型的混沌系统是由Logistic方程产生:
(3)
高鹰等将混沌优化思想引入到了粒子群优化算法中,提出了混沌粒子群优化算法(CPSO)。 混沌粒子群算法的基本思想主要体现在以下两个方面:
1.采用混沌序列初始化粒子的位置和速度,既没有改变粒子群算法初始化时有的随机性,又利用了混沌提高了粒子的种群多样性和搜索遍历性。在产生大量初始群体的基础上,择优出粒子群算法的初始群体,加强算法的全局搜索能力。
2.以当前整个粒子群迄今为止搜索到的最优位置为基础产生混沌序列,把产生的混沌序列中的最优位置粒子替代当前粒子群中的一个粒子的位置。 引入混沌序列的搜索算法可在迭代中产生局部最优解的许多邻域点,以此帮助惰性粒子逃离局部极值点,并快速搜寻到全局最优解。
混沌粒子群优化算法在进行负载均衡分配过程的具体实现步骤如下:
第一步:初始化设置最大允许迭代次数或误差精度,以及混沌粒子群优化算法相关参数:惯性权重、学习因子。
第二步:初始化粒子的位置和速度:
1.随机产生一个n维的每个分量数值在0-1之间的向量 ,n为目标函数中的变量个数,根据式(3),得到N个向量 ;
2.将 的各个分量载波到变量的取值区间;
3.计算粒子群的适应度,并从N个初始群体中选择性能较好的M个解作为初始种群,随机产生M个初始速度;
第三步:如果粒子适应度优于其个体极值 , 更新为新位置;如果某个体极值优于全局极值 , 更新为新位置;
第四步:根据公式(1)~(2)更新粒子的位置和速度;
第五步:对最优位置 ,施加混沌扰动. 将 映射到方程(4)的定义域[0,1]. 然后,用Logistic方程进行迭代产生混沌变量序列 ,再把产生的混沌变量序列通过逆映射返回到原解空间,得:
在原解空间对混沌变量经历的每一个可行解 计算其适应度,得到性能最好的可行解 ;
第六步:用 取代当前群体中任意一个粒子的位置;
第七步:若满足停止条件,则搜索停止,输出全局最优位置,否则返回第三步。
(作者单位:临沂大学)
作者简介
王浩,1993年5月生,山东省兰陵县人,临沂大学2012级软件工程专业本科生。
高宗振:本文指导教师。