评论分析

  |  手机版

收藏网站

投稿QQ:1745232315

IT专家网,汇聚专业声音 解析IT潮流 IT专家网,汇聚专业声音 解析IT潮流

网络

专家视点在现场环球瞭望
IT专家网 > 安全子站 > 评论分析

Least-Connection负载均衡算法及原理

作者:潘风文出处:IT专家网2008-04-19 00:00

  【IT专家网独家】概述

  在上篇文章中,我们讲述了负载均衡算法中的轮询算法(Round-Robin)以及改进型的权重轮询算法(Weighted Round-Robin),在本篇文章中,我将继续讲述最少连接数算法(Least-Connection)和权重最少连接数算法(Weighted Least-Connection)的原理及其实现。

  最少连接数调度算法(Least Connection Scheduling)

  在实际情况中,客户端的每一次请求服务在服务器停留的时间可能会有较大的差异,随着工作时间的延伸,如果采用简单的轮询或随机均衡算法,每一台服务器上的连接进程数目可能会产生极大的不同,这样实际上并没有达到真正的负载均衡。

  最少连接数均衡算法对内部中需负载的每一台服务器都有一个数据记录,记录当前该服务器正在处理的连接数量,当有新的服务连接请求时,将把当前请求分配给连接数最少的服务器,使均衡更加符合实际情况,负载更加均衡。

  与轮询调度算法想反,最小连接调度是一种动态调度算法,它通过服务器当前所活跃的连接数来估计服务器的负载情况。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1;当连接中止或超时,其连接数减一。

  此种均衡算法适合长时处理的请求服务,如FTP等应用。

  最少连接数调度算法流程

  假设有一组服务器S = {S0, S1, ..., Sn-1},C(Si)表示服务器Si的当前连接数。其算法如下:

      for (m = 0; m < n; m++) {
  for (i = m+1; i < n; i++) {
  if (C(Si) < C(Sm))
  m = i;
  }
  return Sm;
  }
  return NULL;

  当各个服务器有相同的处理性能时,最小连接调度算法能把负载变化大的请求分布平滑到各个服务器上,所有处理时间比较长的请求不可能被发送到同一台服务器上。但是,当各个服务器的处理能力不同时,该算法并不理想,因为TCP连接处理请求后会进入TIME_WAIT状态,TCP的TIME_WAIT一般为2分钟,此时连接还占用服务器的资源,所以会出现这样情形,性能高的服务器已处理所收到的连接,连接处于TIME_WAIT状态,而性能低的服务器已经忙于处理所收到的连接,还不断地收到新的连接请求。

  所以,针对这种算法是需要改进的,也是有改进的余地的,这就是权重最少连接数调度算法。

相关文章

关键词: 评论

责任编辑:张帅

专题推荐

原创文章

微博互动

白皮书

网警备案