CN103428102B - 在分布式网络中实现动态负载平衡的方法和系统 - Google Patents

在分布式网络中实现动态负载平衡的方法和系统 Download PDF

Info

Publication number
CN103428102B
CN103428102B CN201310339581.7A CN201310339581A CN103428102B CN 103428102 B CN103428102 B CN 103428102B CN 201310339581 A CN201310339581 A CN 201310339581A CN 103428102 B CN103428102 B CN 103428102B
Authority
CN
China
Prior art keywords
load
node
distributed network
calculation
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310339581.7A
Other languages
English (en)
Other versions
CN103428102A (zh
Inventor
田文洪
谢西庭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhigu Ruituo Technology Services Co Ltd
Original Assignee
Beijing Zhigu Ruituo Technology Services Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Zhigu Ruituo Technology Services Co Ltd filed Critical Beijing Zhigu Ruituo Technology Services Co Ltd
Priority to CN201310339581.7A priority Critical patent/CN103428102B/zh
Publication of CN103428102A publication Critical patent/CN103428102A/zh
Application granted granted Critical
Publication of CN103428102B publication Critical patent/CN103428102B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Multi Processors (AREA)

Abstract

本发明提供了一种在分布式网络中实现动态负载平衡的方法和系统。该方法包括:确定分布式网络的节点平均负载计算值;将节点平均负载计算值与一下限阈值和一上限阈值分别进行比较;当节点平均负载计算值低于下限阈值的时候,将分布式网络中至少一个节点置于休眠状态;以及当节点平均负载计算值高于上限阈值的时候,将分布式网络中至少一个已休眠节点唤醒。本发明的方法和系统在网络负载较低时休眠部分节点并在网络负载较高时将其唤醒,很好地实现了网络节点间的负载平衡,同时提高了分布式网络的能耗效率,降低了网络系统能源消耗。

Description

在分布式网络中实现动态负载平衡的方法和系统
技术领域
本发明涉及网络通信技术,尤其涉及一种在分布式网络中实现动态负载平衡的方法和系统。
背景技术
随着云计算技术的不断发展,云计算数据中心的规模越来越大,数据中心物理服务器的密度也越来越大。传统的数据处理和分析方法受到单机CPU、内存的限制,进行海量运算时候会遇到瓶颈。在这种情况下,很多新的分布式网络技术诞生出来并获得广泛应用,例如Hadoop等。Hadoop是一个能够对大量数据进行分布式处理的软件框架,其极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式网络系统上。
在新技术诞生的同时,在之前针对分布式网络负载性能改进的大量研究基础上,研究人员已开始把注意力放在了分布式网络的节能研究上。Stanford大学的一个团队认为分布式网络在节能方面存在非常大的改进空间,建议对节点数据采用新的算法;加州大学伯克利分校基于节点、工作时间、功率建立了一个模型,并认为基于这个模型能取得较好效果;瑞士科学家修改了分布式网络的块分配算法,从而减少了分布式网络的能源消耗;此外,动态电压调节也被研究人员广泛使用于减少网络能耗,不过不足的是它需要特殊的硬件环境。
与此同时,人们开始意识到优化能耗效率和优化负载性能有同样的价值,单纯强调负载均衡或者单纯强调节能而对系统的整体性能不能兼顾都是不够的。但是,现有技术针对分布式网络的应用中还缺少可以兼顾动态负载均衡和节能两方面的技术。
发明内容
有鉴于此,本发明的一个目的在于提供一种分布式网络技术,以在实现分布式网络的动态负载平衡的基础上提高分布式网络的能耗效率,降低网络系统能源消耗。
根据本发明的一个方面,提供了一种在分布式网络中实现动态负载平衡的方法,所述方法包括:
节点平均负载计算值确定步骤,确定所述分布式网络的节点平均负载计算值;
阈值比较步骤,将所述节点平均负载计算值与一下限阈值和一上限阈值分别进行比较;
休眠步骤,当所述节点平均负载计算值低于所述下限阈值的时候,将所述分布式网络中至少一个节点置于休眠状态;以及
唤醒步骤,当所述节点平均负载计算值高于所述上限阈值的时候,将所述分布式网络中至少一个已休眠节点唤醒。
根据上述技术方案,本发明的方法在网络负载较低时休眠部分节点并在网络负载较高时将其唤醒,很好地实现了网络节点间的负载平衡,同时提高了分布式网络的能耗效率,降低了网络系统能源消耗。而且,本发明的方法在考虑分布式网络负载状况时将节点平均负载计算值作为考虑因素,这相对于现有技术中普遍采用负载最高节点作为考虑因素的方式更加关注了分布式网络的整体负载状态,在达到节约网络能源的基础上进一步改善了分布式网络的整体负载均衡。
优选地,所述分布式网络是Hadoop网络。Hadoop集群是一种典型的分布式网络结构,可以采用本发明的上述方法来实现动态负载平衡。
优选地,所述节点平均负载计算值确定步骤中,同时考虑节点的CPU负载和内存负载两方面,设置节点的负载向量为L=<Lcpu,Lmem>,其中Lcpu表示CPU负载,Lmem表示内存负载,并设置变量p表示节点负载中CPU负载所占权重,其中0<p<1。在现有技术中的网络负载计算方案中,通常仅考虑CPU的运算负载,而并未将数据计算中另一个关键因素——内存负载加以考虑。本发明技术方案同时考虑节点的CPU负载和内存负载两方面,这样更加客观地反映了网络节点的实际负载状态,提高了本方法运行的效率和准确性。
优选地,以下述方式之一来计算当前时刻t的所述节点平均负载计算值Load(t):
方式1: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) 2 + ( 1 - p ) &times; L mem ( t i ) 2 n ;
方式2: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) + ( 1 - p ) &times; L mem ( t i ) n ,
其中,表示节点i在时刻t的CPU负载,表示节点i在时刻t的内存负载,其中i=1,2,……,n;n表示所述分布式网络的节点总数。上述两种方式均同时考虑了CPU负载和内存负载两方面因素,客观反映了网络节点的实际负载状态。
优选地,在所述节点平均负载计算值确定步骤中采用动态负反馈负载计算方法,所述节点平均负载计算值确定步骤进一步包括:
步骤201:计算当前时刻t的节点平均负载Load(t);
步骤202:计算上一时刻t-1的节点平均负载Load(t-1);
步骤203:计算当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1);以及
步骤204:基于当前时刻的节点平均负载Load(t)、当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1),来共同确定所述分布式网络当前的节点平均负载计算值Load(t)'。
本发明技术方案中的动态负反馈负载计算方法引入负反馈机制,在确定当前时刻节点平均负载最终计算值的时候基于当前时刻直接计算出的节点平均负载、并充分考虑上一时刻与当前时刻之间的负载变化,这样可有效避免计算负载值的剧烈变化,缓解由于节点频繁休眠和频繁唤醒而引起的系统抖动。
优选地,以下述方式之一来计算节点平均负载:
方式1: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) 2 + ( 1 - p ) &times; L mem ( t i ) 2 n ;
方式2: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) + ( 1 - p ) &times; L mem ( t i ) n ,
其中,表示节点i在时刻t的CPU负载,表示节点i在时刻t的内存负载,其中i=1,2,……,n;n表示所述分布式网络的节点总数。上述两种方式均同时考虑了CPU负载和内存负载两方面因素,客观反映了网络节点的实际负载状态。
优选地,在所述步骤204中,以如下方式之一来确定所述分布式网络当前时刻t的节点平均负载计算值Load(t)':
方式1: Load ( t ) &prime; = Load ( t ) - Load ( t ) - Load ( t - 1 ) m , 其中m是大于等于3的奇数;
方式2:Load(t)'=Load(t)-k×(Load(t)-Load(t-1)),其中k是大于0的反馈系数;
方式3: Load ( t ) &prime; = Load ( t ) / ( 1 + Load ( t ) - Load ( t - 1 ) m ) , 其中m是大于等于3的奇数。
上述三个技术方案利用负反馈机制一定程度上抵消了有可能的负载剧烈变化。
优选地,在所述休眠步骤中,采用随机方法或轮询方法来选择至少一个节点,并将其置于休眠状态。这两种确定休眠节点的方式均简单易行。
优选地,在所述休眠步骤中,确定所述分布式网络中当前负载最小的至少一个节点,并将其置于休眠状态。该方法总是优先将负载最小的节点置于休眠状态,提升了负载均衡性能。
优选地,在所述休眠步骤中,采用最小抖动负载积方法来确定所述分布式网络中的至少一个节点,并将其置于休眠状态,
所述休眠步骤进一步包括:
步骤301:计算当前每个节点的负载值Load(ti);
步骤302:计算上一时刻每个节点的负载值Load((t-1)i);
步骤303:计算每个节点当前时刻负载值与上一时刻负载值的差值Load(ti)-Load((t-1)i);
步骤304:计算一抖动系数
步骤305:计算考虑抖动后的每个节点当前负载值Load(ti)'=h×Load(ti);
步骤306:选择考虑抖动后节点当前负载值最小的至少一个节点;以及
步骤307:将所选择的至少一个节点置于休眠状态,
其中i=1,2,……,n;n表示所述分布式网络的节点总数。
为了缓解节点频繁休眠和频繁唤醒而引起的系统抖动现象,上述方法在最小负载方法的基础上进一步考虑各节点在当前时刻与上一时刻之间的负载变化,形成最小抖动负载积方法来选择要置于休眠状态的节点。
优选地,以下述方式之一计算节点i的负载值:
方式1: Load ( t i ) = p &times; L cpu ( t i ) 2 + ( 1 - p ) &times; L mem ( t i ) 2 ;
方式2: Load ( t i ) = p &times; L cpu ( t i ) + ( 1 - p ) &times; L mem ( t i ) .
上述两种方式中均同时考虑了CPU负载和内存负载两方面因素,客观反映了分布式网络节各节点的实际负载状态。
优选地,在所述唤醒步骤中,如果所述分布式网络中当前不存在已休眠节点,则启动至少一个新节点。该技术方案处理了在所有节点均处于工作状态下的特殊情况。
根据本发明的另一个方面,提供了一种在分布式网络中实现动态负载平衡的系统,所述系统包括:
节点平均负载计算值确定单元,用于确定所述分布式网络的节点平均负载计算值;
阈值比较单元,用于将所述节点平均负载计算值与一下限阈值和一上限阈值分别进行比较;
休眠单元,用于当所述节点平均负载计算值低于所述下限阈值的时候,将所述分布式网络中至少一个节点置于休眠状态;以及
唤醒单元,用于当所述节点平均负载计算值高于所述上限阈值的时候,将所述分布式网络中至少一个已休眠节点唤醒。
根据上述技术方案,本发明的系统在网络负载较低时休眠部分节点并在网络负载较高时将其唤醒,很好地实现了网络节点间的负载平衡,同时提高了分布式网络的能耗效率,降低了网络系统能源消耗。而且,本发明的系统在考虑分布式网络负载状况时将节点平均负载计算值作为考虑因素,这相对于现有技术中普遍采用负载最高节点作为考虑因素的方式更加关注了分布式网络的整体负载状态,在达到节约网络能源的基础上进一步改善了分布式网络的整体负载均衡。
优选地,所述节点平均负载计算值确定单元同时考虑节点的CPU负载和内存负载两方面,其设置节点的负载向量为L=<Lcpu,Lmem>,其中Lcpu表示CPU负载,Lmem表示内存负载,并设置变量p表示节点负载中CPU负载所占权重,其中0<p<1。在现有技术中的网络负载计算方案中,通常仅考虑CPU的运算负载,而并未将数据计算中另一个关键因素——内存负载加以考虑。本发明技术方案同时考虑节点的CPU负载和内存负载两方面,这样更加客观地反映了网络节点的实际负载状态,提高了本方法运行的效率和准确性。
优选地,所述节点平均负载计算值确定单元以下述方式之一来计算t时刻的所述节点平均负载计算值Load(t):
方式1: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) 2 + ( 1 - p ) &times; L mem ( t i ) 2 n ;
方式2: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) + ( 1 - p ) &times; L mem ( t i ) n ,
其中,表示节点i在时刻t的CPU负载,表示节点i在时刻t的内存负载,其中i=1,2,……,n;n表示所述分布式网络的节点总数。上述两种方式均同时考虑了CPU负载和内存负载两方面因素,客观反映了网络节点的实际负载状态。
优选地,所述节点平均负载计算值确单元进一步包括如下单元:
第一单元:用于计算当前时刻t的节点平均负载Load(t);
第二单元:用于计算上一时刻t-1的节点平均负载Load(t-1);
第三单元:用于计算当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1);以及
第四单元:用于基于当前时刻的节点平均负载Load(t)、当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1),来共同确定所述分布式网络当前的节点平均负载计算值Load(t)'。
本发明技术方案中的动态负反馈负载计算方法引入负反馈机制,在确定当前时刻节点平均负载最终计算值的时候基于当前时刻直接计算出的节点平均负载、并充分考虑上一时刻与当前时刻之间的负载变化,这样可有效避免计算负载值的剧烈变化,缓解由于节点频繁休眠和频繁唤醒而引起的系统抖动。
优选地,所述第一单元或第二单元以下述方式之一来计算节点平均负载:
方式1: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) 2 + ( 1 - p ) &times; L mem ( t i ) 2 n ;
方式2: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) + ( 1 - p ) &times; L mem ( t i ) n ,
其中,表示节点i在时刻t的CPU负载,表示节点i在时刻t的内存负载,其中i=1,2,……,n;n表示所述分布式网络的节点总数。上述两种方式均同时考虑了CPU负载和内存负载两方面因素,客观反映了网络节点的实际负载状态。
优选地,所述第四单元以如下方式之一来确定所述分布式网络的当前时刻t的节点平均负载计算值Load(t)':
方式1: Load ( t ) &prime; = Load ( t ) - Load ( t ) - Load ( t - 1 ) m , 其中m是大于等于3的奇数;
方式2:Load(t)'=Load(t)-k×(Load(t)-Load(t-1)),其中k是大于0的反馈系数;
方式3: Load ( t ) &prime; = Load ( t ) / ( 1 + Load ( t ) - Load ( t - 1 ) m ) , 其中m是大于等于3的奇数。
上述三个技术方案利用负反馈机制一定程度上抵消了有可能的负载剧烈变化。
优选地,所述休眠单元采用随机方法或轮询方法来选择至少一个节点,并将其置于休眠状态。这两种确定休眠节点的方式均简单易行。
优选地,所述休眠单元确定所述分布式网络中当前负载最小的至少一个节点,并将其置于休眠状态。该方式总是优先将负载最小的节点置于休眠状态,提升了负载均衡性能。
优选地,所述休眠单元进一步包括:
第五单元:用于计算当前每个节点的负载值Load(ti);
第六单元:用于计算上一时刻每个节点的负载值Load((t-1)i);
第七单元:用于计算每个节点当前时刻负载值与上一时刻负载值的差值Load(ti)-Load((t-1)i);
第八单元:用于计算一抖动系数
第九单元:用于计算考虑抖动后的每个节点当前负载值Load(ti)'=h×Load(ti);
第十单元:用于选择考虑抖动后节点当前负载值最小的至少一个节点;以及
第十一单元:用于将所选择的至少一个节点置于休眠状态,
其中i=1,2,……,n;n表示所述分布式网络的节点总数。
为了缓解节点频繁休眠和频繁唤醒而引起的系统抖动现象,上述方式在最小负载方法的基础上进一步考虑各节点在当前时刻与上一时刻之间的负载变化,形成最小抖动负载积方法来选择要置于休眠状态的节点。
优选地,所述第五单元或者第六单元以下述方式之一计算节点i的负载值:
方式1: Load ( t i ) = p &times; L cpu ( t i ) 2 + ( 1 - p ) &times; L mem ( t i ) 2 ;
方式2: Load ( t i ) = p &times; L cpu ( t i ) + ( 1 - p ) &times; L mem ( t i ) .
上述两种方式中均同时考虑了CPU负载和内存负载两方面因素,客观反映了分布式网络节各节点的实际负载状态。
优选地,如果所述分布式网络中当前不存在已休眠节点,所述唤醒单元则启动至少一个新节点。该技术方案处理了在所有节点均处于工作状态下的特殊情况。
根据本发明的另一个方面,还提供一种基于动态负反馈的分布式网络中节点平均负载值的确定方法,所述方法包括:
步骤1:计算所述分布式网络中当前时刻t的节点平均负载Load(t);
步骤2:计算所述分布式网络中上一时刻t-1的节点平均负载Load(t-1);
步骤3:计算当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1);以及
步骤4:基于当前时刻的节点平均负载Load(t)、当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1),来共同确定所述分布式网络中当前的节点平均负载计算值Load(t)'。
本发明上述方法引入负反馈机制,在确定当前时刻节点平均负载最终计算值的时候基于当前时刻直接计算出的节点平均负载、并充分考虑上一时刻与当前时刻之间的负载变化,这样可有效避免计算负载值的剧烈变化,缓解由于节点频繁休眠和频繁唤醒而引起的系统抖动。
优选地,所述方法同时考虑节点的CPU负载和内存负载两方面,设置节点的负载向量为L=<Lcpu,Lmem>,其中Lcpu表示CPU负载,Lmem表示内存负载,并设置变量p表示节点负载中CPU负载所占权重,其中0<p<1。本发明技术方案同时考虑节点的CPU负载和内存负载两方面,这样更加客观地反映了网络节点的实际负载状态,提高了本方法运行的效率和准确性。
优选地,以下述方式之一来计算节点平均负载:
方式1: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) 2 + ( 1 - p ) &times; L mem ( t i ) 2 n ;
方式2: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) + ( 1 - p ) &times; L mem ( t i ) n ,
其中,表示节点i在时刻t的CPU负载,表示节点i在时刻t的内存负载,其中i=1,2,……,n;n表示所述分布式网络的节点总数。上述两种方式均同时考虑了CPU负载和内存负载两方面因素,客观反映了网络节点的实际负载状态。
优选地,在所述步骤4中,以如下方式之一来确定所述分布式网络当前时刻t的节点平均负载计算值Load(t)':
方式1: Load ( t ) &prime; = Load ( t ) - Load ( t ) - Load ( t - 1 ) m , 其中m是大于等于3的奇数;
方式2:Load(t)'=Load(t)-k×(Load(t)-Load(t-1)),其中k是大于0的反馈系数;
方式3: Load ( t ) &prime; = Load ( t ) / ( 1 + Load ( t ) - Load ( t - 1 ) m ) , 其中m是大于等于3的奇数。
上述三个技术方案利用负反馈机制一定程度上抵消了有可能的负载剧烈变化。
根据本发明的另一个方面,还提供一种基于动态负反馈的分布式网络中节点平均负载计算值的确定装置,所述装置包括:
第一单元:用于计算所述分布式网络中当前时刻t的节点平均负载Load(t);
第二单元:用于计算所述分布式网络中上一时刻t-1的节点平均负载Load(t-1);
第三单元:用于计算当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1);以及
第四单元:用于基于当前时刻的节点平均负载Load(t)、当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1),来共同确定所述分布式网络中当前的节点平均负载计算值Load(t)'。
本发明上述装置引入负反馈机制,在确定当前时刻节点平均负载最终计算值的时候基于当前时刻直接计算出的节点平均负载、并充分考虑上一时刻与当前时刻之间的负载变化,这样可有效避免计算负载值的剧烈变化,缓解由于节点频繁休眠和频繁唤醒而引起的系统抖动。
优选地,所述装置同时考虑节点的CPU负载和内存负载两方面,设置节点的负载向量为L=<Lcpu,Lmem>,其中Lcpu表示CPU负载,Lmem表示内存负载,并设置变量p表示节点负载中CPU负载所占权重,其中0<p<1。本发明技术方案同时考虑节点的CPU负载和内存负载两方面,这样更加客观地反映了网络节点的实际负载状态,提高了本方法运行的效率和准确性。
优选地,所述第一单元和所述第二单元以下述方式之一来计算节点平均负载:
方式1: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) 2 + ( 1 - p ) &times; L mem ( t i ) 2 n ;
方式2: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) + ( 1 - p ) &times; L mem ( t i ) n ,
其中,表示节点i在时刻t的CPU负载,表示节点i在时刻t的内存负载,其中i=1,2,……,n;n表示所述分布式网络的节点总数。上述两种方式均同时考虑了CPU负载和内存负载两方面因素,客观反映了网络节点的实际负载状态。
优选地,所述第四单元以如下方式之一来确定所述分布式网络当前时刻t的节点平均负载计算值Load(t)':
方式1: Load ( t ) &prime; = Load ( t ) - Load ( t ) - Load ( t - 1 ) m , 其中m是大于等于3的奇数;
方式2:Load(t)'=Load(t)-k×(Load(t)-Load(t-1)),其中k是大于0的反馈系数;
方式3: Load ( t ) &prime; = Load ( t ) / ( 1 + Load ( t ) - Load ( t - 1 ) m ) , 其中m是大于等于3的奇数。
上述三个技术方案利用负反馈机制一定程度上抵消了有可能的负载剧烈变化。
附图说明
图1是本发明一个实施例中实现动态负载均衡的方法的流程图;
图2是本发明一个实施例中动态负反馈负载计算方法的流程图;
图3是本发明一个实施例中最小抖动负载积方法的流程图;
图4是本发明一个实施例中实现动态负载均衡的系统的结构图;
图5是本发明一个实施例中节点平均负载计算值确定单元的结构图;
图6是本发明一个实施例中休眠单元的结构图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细说明。以下实施例用于说明本发明,但不用来限制本发明的范围。
针对现有技术无法兼顾动态负载均衡和节能两方面的技术问题,本发明在一个实施例中提供了一种在分布式网络中实现动态负载均衡的方法,该分布式网络具体可以是hadoop网络等。如图1所示,该方法包括如下步骤:
S102:节点平均负载计算值确定步骤,用于确定分布式网络的节点平均负载计算值;
S104:阈值比较步骤,用于将该节点平均负载计算值与一下限阈值和一上限阈值分别进行比较;
S106:休眠步骤,用于当该节点平均负载计算值低于该下限阈值的时候,将分布式网络中至少一个节点置于休眠状态;以及
S108:唤醒步骤,用于当该节点平均负载计算值高于该上限阈值的时候,将分布式网络中至少一个已休眠节点唤醒。
本发明实施例中的上述方法在网络负载较低时可使部分空闲节点节点休眠,在网络负载较高时再将已休眠的节点唤醒,这样很好地均衡了网络节点间的负载,同时提高了分布式网络的能耗效率,降低了网络系统能源消耗。而且,本发明方法在考虑分布式网络负载状况时将节点平均负载计算值作为考虑因素,这相对于现有技术中普遍采用负载最高节点作为考虑因素的方式更加关注了分布式网络的整体负载状态,在达到节约网络能源的基础上进一步改善了分布式网络的整体负载均衡。
下面,结合各附图来详细介绍上述方法中的各步骤。
(1)S102:节点平均负载计算值确定步骤,确定分布式网络的节点平均负载计算值。
在上述步骤S102中,以分布式网络的节点平均负载计算值作为衡量参数,来评价分布式网络的负载状况。具体地,通过分布式网络中的已有负载测量设备,例如功率仪等,可以以一定时间间隔周期性地采集分布式网络中各节点的负载信息,并基于这些负载信息确定该节点平均负载计算值。
在现有技术中的网络负载计算方案中,通常仅考虑CPU的运算负载,而并未将数据计算中另一个关键因素——内存负载加以考虑。在上述步骤S102中,作为本发明的其中一个发明点,同时考虑节点的CPU负载和内存负载两方面,这样更加客观地反映了网络节点的实际负载状态,提高了本方法运行的效率和准确性。具体地,本发明实施例中采用二维向量来表示节点负载,设置节点的负载向量为L=<Lcpu,Lmem>,其中Lcpu表示CPU负载,Lmem表示内存负载。为了衡量不同应用中CPU负载和内存负载的不同影响,同时引入一变量参数p来表示节点负载中CPU负载所占权重,0<p<1。其中,本领域技术人员可以根据系统的不同应用场景来设置p的取值,例如,若为CPU运用较多的科学计算场合,可使p取较大的值,如0.8;若为内存消耗大的密集型计算场合,则可使p取较小的值,如0.2。
在上述步骤S102的一个具体实施方式中,可以用下述方式之一来直接计算当前时刻t的节点平均负载计算值Load(t):
方式1: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) 2 + ( 1 - p ) &times; L mem ( t i ) 2 n ;
方式2: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) + ( 1 - p ) &times; L mem ( t i ) n ,
其中,表示节点i在时刻t的CPU负载,表示节点i在时刻t的内存负载,其中i=1,2,……,n;n表示所述分布式网络的节点总数。可以看到,虽然上述两种方式均为常用的向量求平均方法,但是两种方式中均同时考虑了CPU负载和内存负载两方面因素,客观反映了网络节点的实际负载状态。
在上述步骤S102的另一个具体实施方式中,作为本发明的其中一个发明点,采用了本发明创新的动态负反馈负载计算方法来确定分布式网络的节点平均负载计算值。“负反馈”是控制理论中的基本概念,是指将系统的输出返回到输入端并对输出产生某种“负”作用,使系统输出与系统目标的误差减小,系统趋于稳定。本发明中的动态负反馈负载计算方法引入该负反馈机制,在确定当前时刻节点平均负载最终计算值的时候基于当前时刻直接计算出的节点平均负载、并充分考虑上一时刻与当前时刻之间的负载变化,这样可有效避免计算负载值的剧烈变化,缓解由于节点频繁休眠和频繁唤醒而引起的系统抖动。
具体地,如图2所示,应用上述动态负反馈负载计算方法的S102进一步包括如下步骤:
步骤201:计算当前时刻t的节点平均负载Load(t);
步骤202:计算上一时刻t-1的节点平均负载Load(t-1);
步骤203:计算当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1);以及
步骤204:基于当前时刻的节点平均负载Load(t)、当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1),来共同确定分布式网络当前的节点平均负载计算值Load(t)'。
由于本发明实施例中的方法可周期性执行以时时对分布式网络实施动态负载平衡,因此相对于本次获取节点负载信息的当前时刻t而言,时刻t-1表示上一周期获取节点负载信息的时刻,或简称“上一时刻”。
在步骤201和步骤202中,均需要计算某一时刻的节点平均负载,在本具体实施方式中,可以采用下述方式之一来计算某时刻的节点平均负载:
方式1: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) 2 + ( 1 - p ) &times; L mem ( t i ) 2 n ;
方式2: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) + ( 1 - p ) &times; L mem ( t i ) n ,
其中,表示节点i在时刻t的CPU负载,表示节点i在时刻t的内存负载,其中i=1,2,……,n;n表示所述分布式网络的节点总数。可以看到,虽然上述两种方式均为常用的向量求平均方法,但是两种方式中均同时考虑了CPU负载和内存负载两方面因素,客观反映了网络节点的实际负载状态。
其中,在上述步骤204中,可以采用如下方式之一来确定所述分布式网络当前的节点平均负载计算值Load(t)':
方式1: Load ( t ) &prime; = Load ( t ) - Load ( t ) - Load ( t - 1 ) m , 其中m是大于等于3的奇数。在这种方式1中,当当前时刻的节点平均负载比前一时刻增加时,Load(t)-Load(t-1)为正数,反之为负数,经过开m次方的调整之后作为负反馈机制的调节量,在直接得到的当前时刻节点平均负载基础上减去该调节量,这样利用负反馈机制一定程度上抵消了有可能的负载剧烈变化。本领域技术人员可以根据分布式网络的实际运行状况来确定m的大小。
方式2:Load(t)'=Load(t)-k×(Load(t)-Load(t-1)),其中k是大于0的反馈系数。在这种方式2中,当当前时刻的节点平均负载比前一时刻增加时,Load(t)-Load(t-1)为正数,反之为负数,经过与反馈系数k的相乘之后作为负反馈机制的调节量,在直接得到的当前时刻节点平均负载基础上减去该调节量,这样利用负反馈机制一定程度上抵消了有可能的负载剧烈变化。本领域技术人员可以根据分布式网络的实际运行状况来确定反馈系数k的大小,k值越大负反馈作用越强。
方式3: Load ( t ) &prime; = Load ( t ) / ( 1 + Load ( t ) - Load ( t - 1 ) m ) , 其中m是大于等于3的奇数。在这种方式3中,当当前时刻的节点平均负载比前一时刻增加时,Load(t)-Load(t-1)为正数,反之为负数,经过开m次方再与1相加之后作为负反馈机制的调节量,在直接得到的当前时刻节点平均负载基础上除以该调节量,这样利用负反馈机制一定程度上抵消了有可能的负载剧烈变化。本领域技术人员可以根据分布式网络的实际运行状况来确定m的大小。
本领域技术人员可以理解,上述基于动态负反馈的节点平均负载计算值确定方法不仅可以作为本发明中实现动态负载平衡方法的一个步骤实施,也可以作为独立的方法在分布式网络中实施。
(2)S104:阈值比较步骤,将该节点平均负载计算值与一下限阈值和一上限阈值分别进行比较。
在步骤S102中确定了节点平均负载计算值后,可将其与预设的上限阈值Wh、下限阈值Wl分别进行比较。本领域技术人员可以根据分布式网络运行的历史记录和经验等来设定节点平均负载的该上限阈值和下限阈值。
当该节点平均负载计算值小于下限阈值Wl时,说明当前分布式网络整体负载较低,为了节约网络能源消耗,可转入步骤S106执行节点休眠相关操作。当该节点平均负载计算值大于上限阈值Wh时,说明当前分布式网络整体负载较高,为了实现负载均衡,可转入步骤S108执行节点唤醒相关操作。
当该节点平均负载计算值大于等于下限阈值Wl且小于等于上限阈值Wh时,说明当前分布式网络整体负载处于正常范围内,可利用当前工作的节点均衡地承担网络负载,因此可以不执行任何附加操作。本领域技术人员可以理解,由于本发明中的方法在分布式网络运行过程中被周期性地执行以持续实现动态负载均衡和节能目标,因此当该节点平均负载计算值介于下限阈值Wl和上限阈值Wh之间时,如图2所示,也可以直接返回步骤S102继续执行,以确定下一周期时刻的节点平均负载计算值。
(3)S106:休眠步骤,当该节点平均负载计算值低于该下限阈值的时候,将分布式网络中至少一个节点置于休眠状态。
当该节点平均负载计算值小于下限阈值Wl时,说明当前分布式网络整体负载较低,本步骤中将至少一个节点置于休眠状态,以节约网络能源消耗并达到负载平衡。在本发明具体实施方式中,可以采用如下几种方法来选择要置于休眠状态的节点:
(i)随机方法
在一个具体实施方式中,可采用随机方法来选择要置于休眠状态的节点。该方法的思想比较简单,也是最容易理解和实现的一种方式,即当该节点平均负载计算值小于下限阈值Wl时,从分布式网络的所有节点中随机选择至少一个节点进行休眠。该方法最容易实现,但是由于随机性较强而不考虑单个节点的负载状态,因此实际适用范围会受到限制。
(ii)轮询方法
在另一个具体实施方式中,可采用轮询方法来选择要置于休眠状态的节点。该方法的思想和操作也比较简单,就是预先将分布式网络中的节点依次编号,然后当该节点平均负载计算值小于下限阈值Wl时,按照编号依次选择至少一个节点进行休眠。该方法简单易行,但是轮询的方式不适合处理节点间负载差异较大的情况。
(iii)最小负载方法
在另一个具体实施方式中,可采用最小负载方法来选择要置于休眠状态的节点。该方法的思想是,当该节点平均负载计算值小于下限阈值Wl时,对分布式网络中所有节点的负载值排序,然后从中选择当前负载值最小的至少一个节点,将其休眠。该方法总是优先将负载最小的节点置于休眠状态,提升了负载均衡性能,但是无法避免节点频繁休眠和频繁唤醒而引起的系统抖动,尤其在分布式网络负载变化明显的情况下这种抖动也比较显著。
(iv)最小抖动负载积方法
在分布式网络中,节点的变动(休眠或唤醒)会产生大量的I/O操作,此操作往往在后台运行,如果同一节点多次变动,会严重影响网络整体性能,故必须尽量减小上述抖动现象的影响。在另一个具体实施方式中,为了缓解节点频繁休眠和频繁唤醒而引起的系统抖动现象,作为本发明其中一个发明点,在最小负载方法的基础上进一步考虑各节点在当前时刻与上一时刻之间的负载变化,形成本实施方式所采用的最小抖动负载积方法来选择要置于休眠状态的节点。
具体地,如图3所示,采用的最小抖动负载积方法的步骤S106进一步包括:
步骤301:计算当前每个节点的负载值Load(ti),其中i=1,2,……,n;n表示所述分布式网络的节点总数。
步骤302:计算上一时刻每个节点的负载值Load((t-1)i);
步骤303:计算每个节点当前时刻负载值与上一时刻负载值的差值Load(ti)-Load((t-1)i);
步骤304:计算一抖动系数其中显然,h值越大表示该节点负载相对稳定状况越差;
步骤305:计算考虑抖动后的每个节点当前负载值Load(ti)'=h×Load(ti);
步骤306:选择考虑抖动后节点当前负载值最小的至少一个节点;以及
步骤307:将所选择的至少一个节点置于休眠状态。
由上述流程可见,即使某节点负载较小但是负载变化较大,也会由于抖动系数较大而不会被选择至于休眠状态,这样在一定程度上避免了频繁调度某一节点对系统稳定性造成的影响,优化的节点选择也提高了系统的负载均衡性。
在上述步骤301和步骤302中,可以采用下述方式之一来计算在某时刻的节点i的负载值:
方式1: Load ( t i ) = p &times; L cpu ( t i ) 2 + ( 1 - p ) &times; L mem ( t i ) 2 ;
方式2: Load ( t i ) = p &times; L cpu ( t i ) + ( 1 - p ) &times; L mem ( t i ) .
可以看到,虽然上述两种方式均为常用的向量求平均方法,但是两种方式中均同时考虑了CPU负载和内存负载两方面因素,客观反映了分布式网络节各节点的实际负载状态。
下面,通过表1来对比一下上述3种休眠节点选择方法的异同:
表1
(4)S108:唤醒步骤,当该节点平均负载计算值高于该上限阈值的时候,将分布式网络中至少一个已休眠节点唤醒。
当该节点平均负载计算值大于上限阈值Wh时,说明当前分布式网络整体负载较高,本步骤中将至少一个已处于休眠状态的节点唤醒,以实现网络负载平衡。
在一种特殊情况下,当该节点平均负载计算值大于上限阈值Wh时网络中所有节点都处于工作状态而不存在休眠节点,此时在步骤S108中可启动至少一个新节点以实现网络负载平衡。
在本发明另一个实施例中,相应提供了一种在分布式网络中实现动态负载均衡的系统100。如图4所示,该系统100包括如下单元:
(1)节点平均负载计算值确定单元102,用于确定分布式网络的节点平均负载计算值;
(2)阈值比较单元104,用于将该节点平均负载计算值与一下限阈值和一上限阈值分别进行比较;
(3)休眠单元106,用于当该节点平均负载计算值低于该下限阈值的时候,将分布式网络中至少一个节点置于休眠状态;以及
(4)唤醒单元108,用于当该节点平均负载计算值高于该上限阈值的时候,将分布式网络中至少一个已休眠节点唤醒。
本发明实施例中的上述系统在网络负载较低时可使部分空闲节点节点休眠,在网络负载较高时再将已休眠的节点唤醒,这样很好地均衡了网络节点间的负载,同时提高了分布式网络的能耗效率,降低了网络系统能源消耗。而且,本发明方法在考虑分布式网络负载状况时将节点平均负载计算值作为考虑因素,这相对于现有技术中普遍采用负载最高节点作为考虑因素的方式更加关注了分布式网络的整体负载状态,在达到节约网络能源的基础上进一步改善了分布式网络的整体负载均衡。
下面,结合各附图来详细介绍上述系统中的各单元功能。
(1)节点平均负载计算值确定单元102,用于确定分布式网络的节点平均负载计算值。
节点平均负载计算值确定单元102以分布式网络的节点平均负载计算值作为衡量参数,来评价分布式网络的负载状况。具体地,作为计算的基础数据,可通过分布式网络中的已有负载测量设备,例如功率仪等,以一定时间间隔周期性地采集分布式网络中各节点的负载信息,节点平均负载计算值确定单元102基于这些负载信息确定该节点平均负载计算值。
节点平均负载计算值确定单元102同时考虑节点的CPU负载和内存负载两方面,这样更加客观地反映了网络节点的实际负载状态,提高了本系统运行的效率和准确性。具体地,本发明实施例中采用二维向量来表示节点负载,设置节点的负载向量为L=<Lcpu,Lmem>,其中Lcpu表示CPU负载,Lmem表示内存负载。为了衡量不同应用中CPU负载和内存负载的不同影响,同时引入一变量参数p来表示节点负载中CPU负载所占权重,0<p<1。其中,本领域技术人员可以根据系统的不同应用场景来设置p的取值。
在一个具体实施方式中,节点平均负载计算值确定单元102可以用下述方式之一来直接计算当前时刻t的节点平均负载计算值Load(t):
方式1: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) 2 + ( 1 - p ) &times; L mem ( t i ) 2 n ;
方式2: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) + ( 1 - p ) &times; L mem ( t i ) n ,
其中,表示节点i在时刻t的CPU负载,表示节点i在时刻t的内存负载,其中i=1,2,……,n;n表示所述分布式网络的节点总数。
在另一个具体实施方式中,节点平均负载计算值确定单元102采用了创新的动态负反馈负载计算方法来确定分布式网络的节点平均负载计算值。具体地,如图5所示,节点平均负载计算值确单元102进一步包括如下单元:
第一单元:用于计算当前时刻t的节点平均负载Load(t);
第二单元:用于计算上一时刻t-1的节点平均负载Load(t-1);
第三单元:用于计算当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1);以及
第四单元:用于基于当前时刻的节点平均负载Load(t)、当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1),来共同确定分布式网络当前的节点平均负载计算值Load(t)'。
在一具体实施方式中,第一单元或第二单元可以采用下述方式之一来计算节点平均负载:
方式1: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) 2 + ( 1 - p ) &times; L mem ( t i ) 2 n ;
方式2: Load ( t ) = &Sigma; i = 1 n p &times; L cpu ( t i ) + ( 1 - p ) &times; L mem ( t i ) n ,
其中,表示节点i在时刻t的CPU负载,表示节点i在时刻t的内存负载,其中i=1,2,……,n;n表示所述分布式网络的节点总数。
在一具体实施方式中,第四单元可以采用如下方式之一来确定所述分布式网络当前的节点平均负载计算值Load(t)':
方式1: Load ( t ) &prime; = Load ( t ) - Load ( t ) - Load ( t - 1 ) m , 其中m是大于等于3的奇数。在这种方式1中,当当前时刻的节点平均负载比前一时刻增加时,Load(t)-Load(t-1)为正数,反之为负数,经过开m次方的调整之后作为负反馈机制的调节量,在直接得到的当前时刻节点平均负载基础上减去该调节量,这样利用负反馈机制一定程度上抵消了有可能的负载剧烈变化。本领域技术人员可以根据分布式网络的实际运行状况来确定m的大小。
方式2:Load(t)'=Load(t)-k×(Load(t)-Load(t-1)),其中k是大于0的反馈系数。在这种方式2中,当当前时刻的节点平均负载比前一时刻增加时,Load(t)-Load(t-1)为正数,反之为负数,经过与反馈系数k的相乘之后作为负反馈机制的调节量,在直接得到的当前时刻节点平均负载基础上减去该调节量,这样利用负反馈机制一定程度上抵消了有可能的负载剧烈变化。本领域技术人员可以根据分布式网络的实际运行状况来确定反馈系数k的大小,k值越大负反馈作用越强。
方式3: Load ( t ) &prime; = Load ( t ) / ( 1 + Load ( t ) - Load ( t - 1 ) m ) , 其中m是大于等于3的奇数。在这种方式3中,当当前时刻的节点平均负载比前一时刻增加时,Load(t)-Load(t-1)为正数,反之为负数,经过开m次方再与1相加之后作为负反馈机制的调节量,在直接得到的当前时刻节点平均负载基础上除以该调节量,这样利用负反馈机制一定程度上抵消了有可能的负载剧烈变化。本领域技术人员可以根据分布式网络的实际运行状况来确定m的大小。
本领域技术人员可以理解,上述基于动态负反馈机制的节点平均负载计算值确定单元不仅可以作为本发明中实现动态负载平衡系统的一个组成单元,也可以作为独立的装置/设备在分布式网络中实施。
(2)阈值比较单元104,用于将该节点平均负载计算值与一下限阈值和一上限阈值分别进行比较。
节点平均负载计算值确定单元102确定了节点平均负载计算值后,阈值比较单元104可将其与预设的上限阈值Wh、下限阈值Wl分别进行比较。本领域技术人员可以根据分布式网络运行的历史记录和经验等来设定节点平均负载的该上限阈值和下限阈值。
(3)休眠单元106,用于当该节点平均负载计算值低于该下限阈值的时候,将分布式网络中至少一个节点置于休眠状态。
当该节点平均负载计算值小于下限阈值Wl时,说明当前分布式网络整体负载较低,休眠单元106将至少一个节点置于休眠状态,以节约网络能源消耗并达到负载平衡。在本发明具体实施方式中,休眠单元106可以采用如下几种方法来选择要置于休眠状态的节点:
(i)随机方法
在一个具体实施方式中,当该节点平均负载计算值小于下限阈值Wl时,休眠单元106从分布式网络的所有节点中随机选择至少一个节点进行休眠。
(ii)轮询方法
在另一个具体实施方式中,休眠单元106预先将分布式网络中的节点依次编号,然后当该节点平均负载计算值小于下限阈值Wl时,按照编号依次选择至少一个节点进行休眠。
(iii)最小负载方法
在另一个具体实施方式中,当该节点平均负载计算值小于下限阈值Wl时,休眠单元106对分布式网络中所有节点的负载值排序,然后从中选择当前负载值最小的至少一个节点,将其休眠。
(iv)最小抖动负载积方法
在另一个具体实施方式中,休眠单元106采用最小抖动负载积方法来选择要置于休眠状态的节点。具体地,如图6所示,该休眠单元106进一步包括:
第五单元:用于计算当前每个节点的负载值Load(ti);
第六单元:用于计算上一时刻每个节点的负载值Load((t-1)i);
第七单元:用于计算每个节点当前时刻负载值与上一时刻负载值的差值Load(ti)-Load((t-1)i);
第八单元:用于计算一抖动系数
第九单元:用于计算考虑抖动后的每个节点当前负载值Load(ti)'=h×Load(ti);
第十单元:用于选择考虑抖动后节点当前负载值最小的至少一个节点;以及
第十一单元:用于将所选择的至少一个节点置于休眠状态。
在一个具体实施方式中,第五单元或者第六单元可以采用下述方式之一来计算节点i的负载值:
方式1: Load ( t i ) = p &times; L cpu ( t i ) 2 + ( 1 - p ) &times; L mem ( t i ) 2 ;
方式2: Load ( t i ) = p &times; L cpu ( t i ) + ( 1 - p ) &times; L mem ( t i ) .
(4)唤醒单元108,用于当该节点平均负载计算值高于该上限阈值的时候,将分布式网络中至少一个已休眠节点唤醒。
当该节点平均负载计算值大于上限阈值Wh时,说明当前分布式网络整体负载较高,唤醒单元108将至少一个已处于休眠状态的节点唤醒,以实现网络负载平衡。
在一种特殊情况下,当该节点平均负载计算值大于上限阈值Wh时网络中所有节点都处于工作状态而不存在休眠节点,此时唤醒单元108可启动至少一个新节点以实现网络负载平衡。
下面,通过一个具体应用领域中的实施例来进一步介绍本发明的技术方案和技术效果。
以9个节点构建的一Hadoop集群为实施实例,其中无论主节点或从节点,每个节点的硬件配置均相同,均为Pentium双核处理器,512M内存,采用Ubuntu9.10系统。Hadoop版本为Hadoop0.21。本发明的方法或系统均可基于各节点对应的功率仪所测量数据来进行分布式网络的动态负载平衡调节。
测试选用Hadoop计算例子WordCount,输入数据分别为50M、100M、500M、1G、2G,程序运行选择大规模数据,按照设定周期监控集群资源,在休眠节点的选取过程中分别使用随机算法、轮询算法、最小负载算法和本发明中介绍的最小抖动负载积方法。
为了衡量各方法对于休眠节点选择的合理性,可以通过调度后负载均衡的程度来衡量。这里,本实施例采用节点负载方差作为衡量参数,进行5组测试取平均值,其中归一化之后的方差数据如表2所示:
表2
从结果可以看到,最小抖动负载积方法在实际运行过程中,由于每次选取的节点抖动比较小,从而使得集群节点负载值方差较小,系统负载更加均衡。
同时可利用集群能耗模型并统计节点空闲休眠时间,计算出一段时间内集群的平均利用率和总能耗。为了度量能耗,采用线性能耗模型:
E=P(u)×Tall=[Pmin+(Pmax-Pmin)×u]×Tall
其中,Pmin是系统空闲时的能耗,Pmax是系统满载时的能耗,u是服务器Tall时间内的平均利用率,Tall是服务器开始到测试结束开机总时间,Tr是节点工作时间,Ts是节点空闲时间,因此Tall=Tr+Ts。根据上述公式,由于总时间Tall相同,Pmin,Pmax均为常数,故系统能耗和平均利用率基本成正比关系。
设系统空载能耗为Pmin=200W,Pmax为300W,同样完成5组数据的测试,对比使用本发明中的动态均衡负载方案和未采用本发明方案情况下的系统能耗如表3所示:
表3
根据上述验证实施例可以进一步看出,本发明的方法和系统在网络负载较低时休眠部分节点并在网络负载较高时将其唤醒,很好地实现了网络节点间的负载平衡,同时提高了分布式网络的能耗效率,降低了网络系统能源消耗。而且,本发明的系统在考虑分布式网络负载状况时将节点平均负载计算值作为考虑因素,这相对于现有技术中普遍采用负载最高节点作为考虑因素的方式更加关注了分布式网络的整体负载状态,在达到节约网络能源的基础上进一步改善了分布式网络的整体负载均衡。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对原有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (27)

1.一种在分布式网络中实现动态负载平衡的方法,其特征在于,所述方法包括:
节点平均负载计算值确定步骤,确定所述分布式网络的节点平均负载计算值;
阈值比较步骤,将所述节点平均负载计算值与一下限阈值和一上限阈值分别进行比较;
休眠步骤,当所述节点平均负载计算值低于所述下限阈值的时候,将所述分布式网络中至少一个节点置于休眠状态;以及
唤醒步骤,当所述节点平均负载计算值高于所述上限阈值的时候,将所述分布式网络中至少一个已休眠节点唤醒,
其中,在所述节点平均负载计算值确定步骤中,采用动态负反馈负载计算方法,所述节点平均负载计算值确定步骤进一步包括:
步骤201:计算当前时刻t的节点平均负载Load(t);
步骤202:计算上一时刻t-1的节点平均负载Load(t-1);
步骤203:计算当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1);以及
步骤204:基于当前时刻的节点平均负载Load(t)、当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1),来共同确定所述分布式网络当前的节点平均负载计算值Load(t)'。
2.根据权利要求1所述的方法,其特征在于,所述分布式网络是Hadoop网络。
3.根据权利要求1所述的方法,其特征在于,在所述节点平均负载计算值确定步骤中,同时考虑节点的CPU负载和内存负载两方面,设置节点的负载向量为L=〈Lcpu,Lmem〉,其中Lcpu表示CPU负载,Lmem表示内存负载,并设置变量p表示节点负载中CPU负载所占权重,其中0<p<1。
4.根据权利要求3所述的方法,其特征在于,以下述方式之一来计算当前时刻t的所述节点平均负载计算值Load(t):
方式1: L o a d ( t ) = &Sigma; i = 1 n p &times; L c p u ( t i ) 2 + ( 1 - p ) &times; L m e m ( t i ) 2 n ;
方式2: L o a d ( t ) = &Sigma; i = 1 n p &times; L c p u ( t i ) + ( 1 - p ) &times; L m e m ( t i ) n ,
其中,表示节点i在时刻t的CPU负载,表示节点i在时刻t的内存负载,其中i=1,2,……,n;n表示所述分布式网络的节点总数。
5.根据权利要求1所述的方法,其特征在于,在所述步骤204中,以如下方式之一来确定所述分布式网络当前时刻t的节点平均负载计算值Load(t)':
方式1: L o a d ( t ) &prime; = L o a d ( t ) - L o a d ( t ) - L o a d ( t - 1 ) m , 其中m是大于等于3的奇数;
方式2:Load(t)'=Load(t)-k×(Load(t)-Load(t-1)),其中k是大于0的反馈系数;
方式3: L o a d ( t ) &prime; = L o a d ( t ) / ( 1 + L o a d ( t ) - L o a d ( t - 1 ) m ) , 其中m是大于等于3的奇数。
6.根据权利要求1所述的方法,其特征在于,在所述休眠步骤中,采用随机方法或轮询方法来选择至少一个节点,并将其置于休眠状态。
7.根据权利要求1所述的方法,其特征在于,在所述休眠步骤中,确定所述分布式网络中当前负载最小的至少一个节点,并将其置于休眠状态。
8.根据权利要求1所述的方法,其特征在于,在所述休眠步骤中,采用最小抖动负载积方法来确定所述分布式网络中的至少一个节点,并将其置于休眠状态,
所述休眠步骤进一步包括:
步骤301:计算当前每个节点的负载值Load(ti);
步骤302:计算上一时刻每个节点的负载值Load((t-1)i);
步骤303:计算每个节点当前时刻负载值与上一时刻负载值的差值Load(ti)-Load((t-1)i);
步骤304:计算一抖动系数
步骤305:计算考虑抖动后的每个节点当前负载值Load(ti)'=h×Load(ti);
步骤306:选择考虑抖动后节点当前负载值最小的至少一个节点;以及
步骤307:将所选择的至少一个节点置于休眠状态,
其中i=1,2,……,n;n表示所述分布式网络的节点总数。
9.根据权利要求7或8所述的方法,其特征在于,以下述方式之一计算节点i的负载值:
方式1: L o a d ( t i ) = p &times; L c p u ( t i ) 2 + ( 1 - p ) &times; L m e m ( t i ) 2 ;
方式2: L o a d ( t i ) = p &times; L c p u ( t i ) + ( 1 - p ) &times; L m e m ( t i ) .
10.根据权利要求1所述的方法,其特征在于,在所述唤醒步骤中,如果所述分布式网络中当前不存在已休眠节点,则启动至少一个新节点。
11.一种在分布式网络中实现动态负载平衡的系统,其特征在于,所述系统包括:
节点平均负载计算值确定单元,用于确定所述分布式网络的节点平均负载计算值;
阈值比较单元,用于将所述节点平均负载计算值与一下限阈值和一上限阈值分别进行比较;
休眠单元,用于当所述节点平均负载计算值低于所述下限阈值的时候,将所述分布式网络中至少一个节点置于休眠状态;以及
唤醒单元,用于当所述节点平均负载计算值高于所述上限阈值的时候,将所述分布式网络中至少一个已休眠节点唤醒,
其中,所述节点平均负载计算值确单元进一步包括如下单元:
第一单元:用于计算当前时刻t的节点平均负载Load(t);
第二单元:用于计算上一时刻t-1的节点平均负载Load(t-1);
第三单元:用于计算当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1);以及
第四单元:用于基于当前时刻的节点平均负载Load(t)、当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1),来共同确定所述分布式网络当前的节点平均负载计算值Load(t)'。
12.根据权利要求11所述的系统,其特征在于,所述节点平均负载计算值确定单元同时考虑节点的CPU负载和内存负载两方面,其设置节点的负载向量为L=〈Lcpu,Lmem〉,其中Lcpu表示CPU负载,Lmem表示内存负载,并设置变量p表示节点负载中CPU负载所占权重,其中0<p<1。
13.根据权利要求12所述的系统,其特征在于,所述节点平均负载计算值确定单元以下述方式之一来计算t时刻的所述节点平均负载计算值Load(t):
方式1: L o a d ( t ) = &Sigma; i = 1 n p &times; L c p u ( t i ) 2 + ( 1 - p ) &times; L m e m ( t i ) 2 n ;
方式2: L o a d ( t ) = &Sigma; i = 1 n p &times; L c p u ( t i ) + ( 1 - p ) &times; L m e m ( t i ) n ,
其中,表示节点i在时刻t的CPU负载,表示节点i在时刻t的内存负载,其中i=1,2,……,n;n表示所述分布式网络的节点总数。
14.根据权利要求11所述的系统,其特征在于,所述第四单元以如下方式之一来确定所述分布式网络的当前时刻t的节点平均负载计算值Load(t)':
方式1: L o a d ( t ) &prime; = L o a d ( t ) - L o a d ( t ) - L o a d ( t - 1 ) m , 其中m是大于等于3的奇数;
方式2:Load(t)'=Load(t)-k×(Load(t)-Load(t-1)),其中k是大于0的反馈系数;
方式3: L o a d ( t ) &prime; = L o a d ( t ) / ( 1 + L o a d ( t ) - L o a d ( t - 1 ) m ) , 其中m是大于等于3的奇数。
15.根据权利要求11所述的系统,其特征在于,所述休眠单元采用随机方法或轮询方法来选择至少一个节点,并将其置于休眠状态。
16.根据权利要求11所述的系统,其特征在于,所述休眠单元确定所述分布式网络中当前负载最小的至少一个节点,并将其置于休眠状态。
17.根据权利要求11所述的系统,其特征在于,所述休眠单元进一步包括:
第五单元:用于计算当前每个节点的负载值Load(ti);
第六单元:用于计算上一时刻每个节点的负载值Load((t-1)i);
第七单元:用于计算每个节点当前时刻负载值与上一时刻负载值的差值Load(ti)-Load((t-1)i);
第八单元:用于计算一抖动系数
第九单元:用于计算考虑抖动后的每个节点当前负载值Load(ti)'=h×Load(ti);
第十单元:用于选择考虑抖动后节点当前负载值最小的至少一个节点;以及
第十一单元:用于将所选择的至少一个节点置于休眠状态,
其中i=1,2,……,n;n表示所述分布式网络的节点总数。
18.根据权利要求17所述的系统,其特征在于,所述第五单元或者第六单元以下述方式之一计算节点i的负载值:
方式1: L o a d ( t i ) = p &times; L c p u ( t i ) 2 + ( 1 - p ) &times; L m e m ( t i ) 2 ;
方式2: L o a d ( t i ) = p &times; L c p u ( t i ) + ( 1 - p ) &times; L m e m ( t i ) .
19.根据权利要求11所述的系统,其特征在于,如果所述分布式网络中当前不存在已休眠节点,所述唤醒单元则启动至少一个新节点。
20.一种基于动态负反馈的分布式网络中节点平均负载计算值的确定方法,其特征在于,所述方法包括:
步骤1:计算所述分布式网络中当前时刻t的节点平均负载Load(t);
步骤2:计算所述分布式网络中上一时刻t-1的节点平均负载Load(t-1);
步骤3:计算当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1);以及
步骤4:基于当前时刻的节点平均负载Load(t)、当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1),来共同确定所述分布式网络中当前的节点平均负载计算值Load(t)'。
21.根据权利要求20所述的方法,其特征在于,所述方法同时考虑节点的CPU负载和内存负载两方面,设置节点的负载向量为L=〈Lcpu,Lmem〉,其中Lcpu表示CPU负载,Lmem表示内存负载,并设置变量p表示节点负载中CPU负载所占权重,其中0<p<1。
22.根据权利要求21所述的方法,其特征在于,以下述方式之一来计算节点平均负载:
方式1:
方式2: L o a d ( t ) = &Sigma; i = 1 n p &times; L c p u ( t i ) + ( 1 - p ) &times; L m e m ( t i ) n ,
其中,表示节点i在时刻t的CPU负载,表示节点i在时刻t的内存负载,其中i=1,2,……,n;n表示所述分布式网络的节点总数。
23.根据权利要求20所述的方法,其特征在于,在所述步骤4中,以如下方式之一来确定所述分布式网络当前时刻t的节点平均负载计算值Load(t)':
方式1: L o a d ( t ) &prime; = L o a d ( t ) - L o a d ( t ) - L o a d ( t - 1 ) m , 其中m是大于等于3的奇数;
方式2:Load(t)'=Load(t)-k×(Load(t)-Load(t-1)),其中k是大于0的反馈系数;
方式3: L o a d ( t ) &prime; = L o a d ( t ) / ( 1 + L o a d ( t ) - L o a d ( t - 1 ) m ) , 其中m是大于等于3的奇数。
24.一种基于动态负反馈的分布式网络中节点平均负载计算值的确定装置,其特征在于,所述装置包括:
第一单元:用于计算所述分布式网络中当前时刻t的节点平均负载Load(t);
第二单元:用于计算所述分布式网络中上一时刻t-1的节点平均负载Load(t-1);
第三单元:用于计算当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1);以及
第四单元:用于基于当前时刻的节点平均负载Load(t)、当前时刻的节点平均负载与上一时刻的节点平均负载的差值Load(t)-Load(t-1),来共同确定所述分布式网络中当前的节点平均负载计算值Load(t)'。
25.根据权利要求24所述的装置,其特征在于,所述装置同时考虑节点的CPU负载和内存负载两方面,设置节点的负载向量为L=〈Lcpu,Lmem〉,其中Lcpu表示CPU负载,Lmem表示内存负载,并设置变量p表示节点负载中CPU负载所占权重,其中0<p<1。
26.根据权利要求25所述的装置,其特征在于,所述第一单元和所述第二单元以下述方式之一来计算节点平均负载:
方式1: L o a d ( t ) = &Sigma; i = 1 n p &times; L c p u ( t i ) 2 + ( 1 - p ) &times; L m e m ( t i ) 2 n ;
方式2: L o a d ( t ) = &Sigma; i = 1 n p &times; L c p u ( t i ) + ( 1 - p ) &times; L m e m ( t i ) n ,
其中,表示节点i在时刻t的CPU负载,表示节点i在时刻t的内存负载,其中i=1,2,……,n;n表示所述分布式网络的节点总数。
27.根据权利要求24所述的装置,其特征在于,所述第四单元以如下方式之一来确定所述分布式网络当前时刻t的节点平均负载计算值Load(t)':
方式1: L o a d ( t ) &prime; = L o a d ( t ) - L o a d ( t ) - L o a d ( t - 1 ) m , 其中m是大于等于3的奇数;
方式2:Load(t)'=Load(t)-k×(Load(t)-Load(t-1)),其中k是大于0的反馈系数;
方式3: L o a d ( t ) &prime; = L o a d ( t ) / ( 1 + L o a d ( t ) - L o a d ( t - 1 ) m ) , 其中m是大于等于3的奇数。
CN201310339581.7A 2013-08-06 2013-08-06 在分布式网络中实现动态负载平衡的方法和系统 Active CN103428102B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310339581.7A CN103428102B (zh) 2013-08-06 2013-08-06 在分布式网络中实现动态负载平衡的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310339581.7A CN103428102B (zh) 2013-08-06 2013-08-06 在分布式网络中实现动态负载平衡的方法和系统

Publications (2)

Publication Number Publication Date
CN103428102A CN103428102A (zh) 2013-12-04
CN103428102B true CN103428102B (zh) 2016-08-10

Family

ID=49652290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310339581.7A Active CN103428102B (zh) 2013-08-06 2013-08-06 在分布式网络中实现动态负载平衡的方法和系统

Country Status (1)

Country Link
CN (1) CN103428102B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105100155A (zh) * 2014-05-15 2015-11-25 北大方正集团有限公司 动态部署下载机方法和动态部署下载机装置
CN105721170B (zh) * 2016-01-25 2018-10-16 北京邮电大学 基于sdn网络架构的多控制器的节能方法及装置
CN106060450B (zh) * 2016-07-13 2019-03-29 苏州科达科技股份有限公司 一种视频会议的混音方法及装置
CN107026900B (zh) 2017-03-06 2020-02-14 浙江大华技术股份有限公司 一种拍摄任务分配方法及装置
CN107172504B (zh) * 2017-05-08 2020-12-22 苏州中科集成电路设计中心有限公司 一种面向流式音视频数据的分布式处理方法及其装置
CN107147734A (zh) * 2017-06-05 2017-09-08 国家计算机网络与信息安全管理中心 一种基于两级转发的网络流量线程级动态负载均衡方法及系统
CN109151038A (zh) * 2018-09-05 2019-01-04 浙江树人学院 一种绿色视频监控系统服务器集群系统及其实现方法
CN110022246A (zh) * 2019-04-15 2019-07-16 苏州浪潮智能科技有限公司 分布式集群设备功耗监控方法、装置、系统及相关组件
CN110347503B (zh) * 2019-06-27 2021-07-30 杭州数梦工场科技有限公司 资源重调度方法及装置
CN111580944A (zh) * 2020-04-17 2020-08-25 拉扎斯网络科技(上海)有限公司 任务分配方法、装置、可读存储介质和电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102244685A (zh) * 2011-08-11 2011-11-16 中国科学院软件研究所 一种支持负载均衡的分布式缓存动态伸缩方法及系统
CN102801792A (zh) * 2012-07-26 2012-11-28 华南理工大学 基于统计预测的云cdn资源自动部署方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8521855B2 (en) * 2005-09-27 2013-08-27 Intel Corporation Centralized server-directed power management in a distributed computing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102244685A (zh) * 2011-08-11 2011-11-16 中国科学院软件研究所 一种支持负载均衡的分布式缓存动态伸缩方法及系统
CN102801792A (zh) * 2012-07-26 2012-11-28 华南理工大学 基于统计预测的云cdn资源自动部署方法

Also Published As

Publication number Publication date
CN103428102A (zh) 2013-12-04

Similar Documents

Publication Publication Date Title
CN103428102B (zh) 在分布式网络中实现动态负载平衡的方法和系统
CN104283946B (zh) 一种单物理机下多虚拟机的资源自适应调整系统及方法
Li et al. An online power metering model for cloud environment
CN107239336A (zh) 一种实现任务调度的方法及装置
CN107515663A (zh) 调整中央处理器内核运行频率的方法和装置
Canali et al. Improving scalability of cloud monitoring through PCA-based clustering of virtual machines
Li et al. Intermediate data placement and cache replacement strategy under Spark platform
Borghesi et al. Pricing schemes for energy-efficient HPC systems: Design and exploration
CN103605578A (zh) 基于虚拟机迁移的负载均衡调度方法
CN108874535A (zh) 一种任务调节方法、计算机可读存储介质及终端设备
CN112835698A (zh) 一种基于异构集群的请求分类处理的动态负载均衡方法
Panda et al. An efficient task consolidation algorithm for cloud computing systems
CN102520785B (zh) 一种云数据中心能耗管理方法及系统
Davis et al. Accounting for variability in large-scale cluster power models
Li et al. Cost-aware automatic scaling and workload-aware replica management for edge-cloud environment
CN111506431B (zh) 一种云服务器在能耗约束下感知负载性能优化方法
US10509429B2 (en) Method and apparatus for improving efficiency of a cloud platform based on node usage
CN103245829B (zh) 一种虚拟机功耗测量方法
CN111309472A (zh) 一种基于虚拟机预部署的在线虚拟资源分配方法
CN111507474A (zh) 一种动态调整Batch-size的神经网络分布式训练方法
Chen et al. Green Databases Through Integration of Renewable Energy.
Hussin et al. Efficient energy management using adaptive reinforcement learning-based scheduling in large-scale distributed systems
CN106603661B (zh) 一种适用于云平台的动态资源平衡调度方法
CN103324577A (zh) 基于最小化io访问冲突和文件分条的大规模分条文件分配系统
Li et al. Towards power efficient high performance packet I/O

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant