现在的位置: 首页 > 综合 > 正文

低通滤波在多节点非对称负载调度中的一个应用

2013年09月28日 ⁄ 综合 ⁄ 共 802字 ⁄ 字号 评论关闭

现在有N个节点 这N个节点都是自己的服务器, 这些服务器协同对外进行服务.
由于各服务器是在不同的时期买的,处理能力不太一样,需要分担的负载要根据情况进行非对称平衡.
负载的两个指标是掉度重点:  1.负载大小 2.负载抖动量

对与1 调度的模型有很多,这里就不论述了,下面就2进行说明:

每个机器对负载抖动量的敏感程度可用如下公式计算:
Yn=a* Xn+(1-a)*Yn-1
其中Yn-1是上一次本服务节点承载的负载抖动量.
Xn是本次节服务群取样的负载抖动量
Yn是本次本节点应当调度承载的负载抖动量

如上所述,现在通过调整各节点的a值可有效进行负载抖动在各节点的分布情况,也即可以使各节点对
外负载变化的敏感度进行有效的调度.
在实际系统中为了加快运算速度,将a取为整数.关键时也可采用汇编。

struct node_Att1 {
        unsigned char node_name[256];
        unsigned int  a;     
};
  unsigned int mod_a=0xff;
  struct node_att1  node_parlist[]={(unsigned char*)"Server1",2,(unsigned char*)"Server1",6,(unsigned char*)"Server1",80};
int i;
unsigned char local_name[256];
...
  //安节点名称设置相应措施的a,也可做成配置文件动态加载.
for(i=0;i<sizeof(node_parlist)/sizeof(node_Att1);i++)
{
       if(thread_strcmp(node_parlist,local_name)==0)
      {
          a=node_parlist.a
          break;
      }
}

实际用以下纯整数计算.
Yn2=a* Xn2+(mode_a-a)*Yn1

抱歉!评论已关闭.