专利名称:食品安全追溯数据库的负载均衡优化方法
技术领域:
本发明涉及信息技术和数据库技术领域,具体地,涉及数据库服务器的负载均衡方法, 该算法用于大量用户并发访问食品安全追溯系统时的多服务器的负载调度,有效地解决了 多服务器的负载均衡问题,同时为数据库的扩充提供了便利。
背景技术:
随着经济和杜会的发展,人们的生活水平不断提高,对食品的质量和安全要求也越来 越高。由于食品安全危机的频繁发生以及消费者意识的觉醒,食品安全问题作为一项公共 安全问题引起了国家和社会的广泛关注,食品追溯作为一种用以保证食品安全的管理工具 日益得到国家的重视。追溯是通过记录标识的方法回溯某个实体的来源、用途和位置,食 品安全追溯通过对食品各环节信息的连接与记录,可以真实再现食品整个生命周期的历史。
由于食品供应链条较长,食品安全追溯系统平台涉及的数据量巨大,平台数据库包含 各种空间数据、报表统计数据、文字、声音、图像等各种采样和汇总数据信息。广大消费 者、政府监管机构、检验检疫及第三方检测机构等众多用户的查询、统计、分析及提取数 据的访问要求追溯系统能够及时有效地处理大量的并发请求,如何快速地实现数据库服务 器负载的均衡调度,成为追溯系统成功实施需解决的关键技术之一。
单台服务器的负载能力是有限的,面对日益增加的用户访问数量和访问流量,单纯靠 提高服务器硬件的性能已经无法满足要求,目前在网络中通常使用多台服务器共同提供服 务,通过一定机制将系统负载分配到不同的服务器上处理,为大量用户提供并发访问服务, 这就是负载均衡。负载均衡是实现多台服务器协同工作和并行处理的手段,可以充分利用网 络资源。
要实现负载均衡,关键是通过不同的负载均衡方案合理地进行调度,把用户的大量请求 分配到不同的服务器上进行处理。大规模负载均衡问题是NP难题,难以在多项式时间内找 到最优调度,通常随着负载请求的急剧增加,调度性能会迅速下降。目前服务器负载均衡常
用算法有循环调度、(加权)加权轮转调度、(加权)最小连接数调度、最快响应调度、目 标地址散列调度、源地址散列调度、基于概率统计的调度、预估服务时间调度等等。这些 算法可以有效地实现服务器的负载均衡调度,但要么注重调度速率即选择服务器的速率,要 么注重调度的均衡程度却忽略了速率,也有算法考虑了服务器的负载状态,但缺乏有效的 负载平衡方法。智能优化算法如遗传算法的引入,为负载均衡调度提供了一条可行的有效 途径。
当优化问题的规模较大、搜索空间变得复杂时,多数智能算法常常可以很快地找到近 优解,但由于算法择优保留的搜索机制,以及后期变异、交叉等操作对最优解构成成分的 破坏,算法在近优解附近振荡,却很长时间内无法到达最优解,或限于局部极值无法进行更广范围的搜索。而且由于算法参数往往凭经验设定,没有有效的选取机制,使得算法在 求解实际优化问题的性能受到了很大限制。因此,需要对智能算法进行改进或寻求新的搜 索机制,提高优化效率,有效解决服务器负载均衡调度问题。
发明内容
本发明的目的是针对数据库服务器大量并发访问的负载均衡问题,以及现有智能优化 算法搜索机制和效率的不足,提出一种基于极值优化的负载均衡优化方法。算法中考虑服 务器的当前负载状态,通过在网络中布置S剛P采集服务器,采用基于S刚P的服TG监控工 具,以适当的时间间隔采集多台服务器的负载数据,根据服务器负载状态进行调度,实现多 台服务器的负载均衡。算法参数具有最佳取值依据,比其他智能优化算法如遗传算法具有 更大的优越性。
极值优化算法是一种新型的仿生搜索算法,对于一般算法难以求解的某些NP难问题, 也具有较好的性能。在自然界中,当最无效的元素被选择性地驱使于消亡,就经常会出现 高度复杂的结构。极值过程即是指在系统的演变过程中不断地清除适应性最差的元素,是 自组织临界(Sdf-Organized Criticality, SOC)模型通常依赖的过程原则。受自然界中自组织 过程的启发,Boettcher等设计了极值优化算法(Extremal Optimization, EO)。不同于遗传 算法等繁殖优解的操作方式,极值优化算法不断以幂函数概率A oc/rr选择适应性较差的变 量进行变异(其中A为变量按适应度的排序号,r为指定参数,并有其一般估计公式 、,al + 4/lnn ("">oo),"为变量个数),逐步清除构成解的较差成分,从而很快地靠近 近优解,并具有很强的跳出局部最优解的能力。
这里将极值优化的机制引入负载均衡算法中,结合食品追溯数据库的用户特点,在监 测服务器当前负载状态并预测服务请求所需资源的基础上,针对问题定义解的目标函数、 变量及其适应度、变量的变异规则,提高了负载均衡的优化效率和数据库资源的利用率。
本发明方法具体如下
步骤一设置不同时间段服务器负载信息采集的时间间隔;分别设置各服务器的负载 信息CPU负载、内存占用率和网络流量的权重;
步骤二考虑不同用户请求的响应时间要求,对访问请求进行分类,设置不同请求的 优先级参数;
步骤三定义变量适应度和解的适应度,设置选择进行变异的变量的概率参数;
步骤四算法初始化,定义变量的变异规则,记录初始解为最好解;
步骤五迭代按步骤四定义的变异规则进行更新,计算解对应的目标函数;将变异 后的解与保留的最好解进行比较,保留较好解为最好解。
步骤六判断迭代是否结束。若连续10次迭代后保留的最好解的目标函数无明显改善, 将最好解所表示的方案作为负载分配的优化结果输出。否则返回执行步骤五继续执行。 流程如附图所示。
本发明方法在考虑当前各服务器负载的基础上,利用对服务请求完成所需CPU负载、 内存、网络流量等资源的估计和极值优化机制,完成服务请求任务在各服务器上的分配, 从而充分利用服务器资源,平衡各服务器的负载,提高用户请求的访问效率。
附图是本发明的流程示意图。
具体实施例方式
根据食品追溯系统的特点,对于负载信息的采集时间间隔和负载信息权重、服务器的 负载阈值制定相应的如下规则
1,负载信息采集的时间间隔根据每天不同时间段的用户估计产生,各时间段采用不同 的时间间隔。如在工作日,企业、政府、检测结构用户居多,而且服务请求数据处 理量大,负载信息的采集时间间隔可设置稍大些;而在晚上及周末,购买食品的消 费者查询居多,査询的时间响应的要求较高,而数据处理量不大,数据库服务器的 负载信息采集的时间间隔设置要稍小。
2,按照用户群的类别不同,不同类的请求设定不同的优先级。消费者对食品产品的追 溯查询优先级最高,其次为企业用户、检验检疫结构及第三方检测机构,然后是政 府监管部门。
3,为避免数据库服务器超负荷发生崩溃,规定服务器负载阈值,作为负载分配的约束 条件。实际应用中数据库服务器对内存的要求比Web服务器和FTP服务器要高,因 此CPU负载比网络流量和内存占用率的权值要高;服务器的综合负载阈值,根据相 关原理可以设置为80%。
以下对本发明的具体实施作进一步的描述
步骤一根据不同时间段内食品追溯系统的用户群类型,设置服务器负载信息釆集的 时间间隔;通过配置基于S丽P的MRTG监控软件获取服务器的负载信息CPU 负载、内存占用率和网络流量,设置各负载信息的权重;
步骤二对访问请求进行分类,按照用户群的类别不同,设置不同请求的优先级参数。
消费者对食品产品的追溯査询优先级为一级,企业用户、检验检疫结构及第 三方检测机构为二级,政府监管部门为三级。
步骤三定义变量及其适应度,给出解的适应度(目标函数),设置选择概率参数7";
(1)假设共有/台服务器可用,需要将■/个服务请求分配到这/台服务器上进行处理,若第y'个服务请求分配到第/台服务器上,对服务器形成的负载为
cpu负载^、内存占用/;、网络流量/;1,其权重系数分别为"-、《、^",
定义i个变量分别为与每台服务器的综合负载相关的表达式,其适应度为
<formula>formula see original document page 6</formula>
其中z,为第/台服务器的综合负载:
<formula>formula see original document page 6</formula>
服务器的负载与平均负载差别越大,说明负载越不均衡,该服务器代表的变 量的适应度的绝对值就越大。
(2)算法的解是服务请求在各服务器上的分配方案,因此解的目标函数综合 考虑各服务器上的请求分配,尽量均衡负载。将解的目标函数定义为所有服
务器上的综合负载与平均负载之差的和与服务器个数的比值
<formula>formula see original document page 6</formula>
(3)根据幂率选择函数;,《l + 4/ln/ (/ —①),计算选择概率A oc/rr的 参数r的最佳取值。 步骤四算法种群初始化,定义变量的变异规则;(1) 初始化为了提高算法的优化速度,采用启发式方法产生初始解。计算当 前各服务器的负载,按负载由小到大进行排序,按照服务请求的优先级(优先 级相同的服务请求随机选取进行分配),每台服务器分配一个请求,依次循环, 将请求分配到各服务器上,形成初始任务分配,按照式(2)计算各服务器的综 合负载。
(2) 变异规则将各服务器按照适应度的正负分成两组正组和负组,适应度 为0的服务器随机分配到其中一组内,记录服务器个数较少组内的元素数为
mim。将负组内的服务器按照适应度由小到大排序,具有相同;i值的变量随
机排序,形成等级A-lU,min")), A: = 2,... , A = x (X) = max"})的排 列,正组内的服务器按照适应度由大到小排序,形成等级 A: = l U, =max{;i,}), * = 2广.,A: = ;c (X) = minW,.})的排列;分别按等级A;的分布概率函数尸("ocA-r从正、负两组选择两台服务器,对完成其中的每 个服务请求所需占用的服务器综合资源(CPU、内存、网络流量)进行估计, 并按占用资源由多到少排序前五位服务请求,分别从两台服务器的任务中按 幂函数概率选择两个任务进行交换。如此循环MIM次。 (当服务器中的请求个数超过五个时,只排序到第五位,这是因为幂函数概率 & oc;t"的分布在yt二5以后的值很小,变量被选中的概率很小,如此可以提
高算法速度,减小计算量。)
步骤五迭代。按步骤四定义的变异规则对解进行更新,计算解对应的目标函数,并 将其与最好解进行比较,保留较好的一个为最好解。
步骤六判断迭代是否结束。若连续10次迭代后的最好解的目标函数无明显改善,将
最好解所表示的负载分配方案作为优化结果输出。否则返回执行步骤五继续执行。
本发明方法具有可行性和高效性,能够解决多服务器的负载均衡问题,从而更好地利 用数据库资源,完成多用户并发请求的负载分配。特别是极值优化算法借鉴了自然界去除 劣势元素的思想,有效避免了陷于局部极值的危险,变异规则将负载差异大的服务器上的 任务进行调整,提高了服务请求任务均衡的效率,为多服务器负载均衡提供了新的方法。
权利要求
1.一种食品安全追溯数据库的负载均衡优化方法,其特征在于它通过如下步骤实现(1)设置不同时间段数据库服务器负载信息采集的时间间隔,设置各数据库服务器的负载信息(CPU负载、内存占用率和网络流量)的权重;(2)考虑不同用户请求的响应时间要求,对访问请求进行分类,设置不同请求的优先级参数;(3)定义变量适应度和解的适应度,设置选择变异变量的概率参数;(4)算法初始化,定义变量的变异规则,记录初始解为最好解;(5)迭代按定义的变异规则进行更新,计算解对应的目标函数,并将其与最好解进行比较,保留较好的一个为最好解;(6)判断迭代是否结束。若连续10次迭代后保留的最好解的目标函数无明显改善,将最好解所表示的负载分配方案作为优化结果输出。否则返回执行步骤五继续执行。
2. 根据权.禾房求1所述的食品安全追溯数据库的负载均衡优化方法,其特征在于步骤 (1)、 (2)和步骤(3)中考虑了各服务器当前的负载状态和不同类服务请求的响应时间要求,根 据问题的特征定义变量适应度为服务器负载与平均负载之间差值的关系式A,= ~~^~ = 4^-1,其中丄,t("Z+Zl^+^P为单个服务器的综合负载,适应 》,》, ^度的绝对值越大,服务器的负载越偏离平均负载,负载越不均衡。这种定义更符合实际情况,可以提高服务器资源的利用率;发生变异的变量选择概率为、p, l + 4/ln/ (/为服务器台 数),避免了参数调整耗费大量计算时间。
3. 根据权.承展求1所述的食品安全追溯数据库的负载均衡优化方法,其特征在于步骤(4) 中根据食品追溯系统用户的特点,釆用基于服务器当前负载状态、考虑服务请求用户优先级 的启发式方法,生成算法的初始解,提高算法的优化效率。
4. 根据权利要求1所述的食品安全追溯数据库的负载均衡优化方法,其特征在于步骤(4) 的变异规则考虑服务器的当前负载状态,并对等待分配的服务请求进行资源使用估计,利用 极值优化机制进行请求任务的分配调整。具体地,将各服务器按照适应度的正负分成两组,分别按适应度等级A的分布概率函数尸(A:)ocArV人正、负两组选择两台服务器,对完成其中的 每个服务请求所需占用的服务器综合资源(CPU、内存、网络流量)进行估计,并按占用资源 由多到少将服务请求进行排序,分别从两台服务器的任务中按幂函数概率选择两个任务进行 交换,并循环操作MIM次,将负载差异大的服务器上的任务进行互补调整,从而快速实现各 服务器的负载均衡化。
全文摘要
一种食品安全追溯数据库负载均衡优化方法,主要用于解决多用户并发访问的负载均衡问题。技术方案要点如下1.设置负载信息采集的时间间隔、负载信息权值等参数;2.按用户群体对服务请求进行分类,并规定优先级;3.变量适应度的计算采用服务器综合负载与平均负载差值的关系式λ<sub>i</sub>=(L<sub>i</sub>-(1/I)∑<sup>I</sup><sub>i=1</sub>L<sub>i</sub>)/(1/I)∑<sup>I</sup><sub>i=1</sub>L<sub>i</sub>=I·L<sub>i</sub>/∑<sup>I</sup><sub>i=1</sub>L<sub>i</sub>-1,其中L<sub>i</sub>=∑<sup>J</sup><sub>j=1</sub>(α<sub>j</sub><sup>c</sup>l<sub>j</sub><sup>c</sup>+β<sub>j</sub><sup>r</sup>l<sub>j</sub><sup>r</sup>+γ<sub>j</sub><sup>n</sup>l<sub>j</sub><sup>n</sup>)为单个服务器的综合负载;变异选择的概率参数采用公式τ≈1+4/lnI(I为服务器个数),算法中的解表示服务请求分配方案中各服务器的负载,目标函数为f=∑<sup>I</sup><sub>i=1</sub>|λ<sub>i</sub>-λ<sub>Ave</sub>|/I=(∑<sup>I</sup><sub>i=1</sub>|λ<sub>i</sub>-∑<sup>I</sup><sub>i=1</sub>λ<sub>i</sub>/I|)/I。本发明考虑了服务器的当前负载状态,并对等待分配的服务请求进行了资源使用估计,在循环迭代中利用极值优化机制不断调整负载差异较大的服务器上的请求任务,有效解决了服务器的负载均衡问题,提高了数据库资源的利用率。
文档编号G06F9/46GK101594371SQ20081001638
公开日2009年12月2日 申请日期2008年5月28日 优先权日2008年5月28日
发明者刘丽梅, 东 张, 玎 王, 王云争, 恒 钱, 高永超 申请人:山东省标准化研究院