【问题标题】:Uneven load distribution in Tomcat application servers proxy balanced in front end Apache httpd web serverTomcat 应用程序服务器中的负载分布不均匀 代理在前端 Apache httpd Web 服务器中平衡
【发布时间】:2015-12-22 14:42:17
【问题描述】:

我正在使用 6 个 Apache httpd 2.2.15 将请求转发到 Tomcat 应用程序服务器(版本:7.0.41)。使用 mod_proxy,所有应用程序服务器都使用代理平衡器进行平衡。下面是apache httpd.conf的类似配置:

##Proxy Balancers for use by all Virtual Hosts
<Proxy balancer://FrontEnd>
   BalancerMember ajp://APP01.abcd.com:8009 route=APP01 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP02.abcd.com:8009 route=APP02 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP03.abcd.com:8009 route=APP03 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP04.abcd.com:8009 route=APP04 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP05.abcd.com:8009 route=APP05 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP06.abcd.com:8009 route=APP06 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP07.abcd.com:8009 route=APP07 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP08.abcd.com:8009 route=APP08 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP09.abcd.com:8009 route=APP09 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP10.abcd.com:8009 route=APP10 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP11.abcd.com:8009 route=APP11 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP12.abcd.com:8009 route=APP12 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP13.abcd.com:8009 route=APP13 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP14.abcd.com:8009 route=APP14 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP15.abcd.com:8009 route=APP15 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP16.abcd.com:8009 route=APP16 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP21.abcd.com:8009 route=APP21 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP22.abcd.com:8009 route=APP22 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP23.abcd.com:8009 route=APP23 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP24.abcd.com:8009 route=APP24 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp://APP25.abcd.com:8009 route=APP25 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP26.abcd.com:8009 route=APP26 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP27.abcd.com:8009 route=APP27 timeout=120 ttl=600 keepalive=On
   BalancerMember ajp:// APP28.abcd.com:8009 route=APP28 timeout=120 ttl=600 keepalive=On
    ProxySet stickysession=JSESSIONID
</Proxy>

当我从 Apache webserver balancer-manager 检查时,我遇到了应用程序服务器之间负载分布不均匀的问题。事实上,前 13 个应用服务器(app01 到 app13,假设为 batch1)的负载几乎相等,其余的应用服务器(app14 到 app16 和 app21 到 app28,假设为 batch2)的负载相同。 batch1 应用服务器的负载几乎是 batch2 应用服务器的 3 倍。

我还尝试诊断是否有任何网络问题可能导致该问题。因此,尝试使用 traceroute 命令进行诊断,发现两个批处理服务器(batch1 和 batch2)的模式几乎相似,都有 30 跳。

我无法弄清楚,问题是什么?谁能帮帮我。 任何帮助,非常感谢。

【问题讨论】:

  • 负载均衡器要么认为这两个服务器不那么忙,要么它们真的。他们使用更快的硬件还是不同的配置?您是否定义了任何可能导致更多连接被定向到同一服务器的粘性?但是在 Stack Exchange 上可能有更好的地方可以提出这样的问题。
  • 硬件和配置是一样的。 Web 服务器中没有定义粘性。只有,stickysession 才能捕获到应用程序服务器的一个特定请求的 JSESSIONID。谢谢玛格。
  • 我尝试将 lbmethod 更改为“bytraffic”并重新加载服务器。重新加载后,每个应用服务器中的负载均匀分布。但是一段时间后,负载又变得不均匀,也就是说,Batch-1 承担了近 80% 的负载,而 Batch-2 的剩余(20%)。当 lb 方法默认为“byrequests”时,也会发生同样的事情。另外,我已经从代理平衡器中删除了 APP21-APP28(Batch-2 现在只包含 APP14-APP16),但问题仍然存在。谁能帮忙。
  • 正常重启网络服务器解决了这个问题。我相信在更改后重新加载 Web 服务器(以避免任何停机时间)不会关闭所有连接并再次打开它。这可能是应用服务器之间负载平衡不均匀的原因。无论如何谢谢:) @Marged

标签: apache tomcat


【解决方案1】:

正常重启网络服务器解决了这个问题。更改后重新加载 Web 服务器(以避免任何停机时间)不会关闭所有连接并在启动时再次打开它。这创建了一个连词。我相信这可能是应用服务器之间负载平衡不均衡的原因。无论如何谢谢:)

【讨论】:

    【解决方案2】:

    如果你没有使用 bybusyness 方法,那么只有在优雅重启之后负载是均匀的才有意义。根据中的描述 https://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html,请求或流量是基于历史值的,所以如果你有一半的应用服务器离线一段时间,然后你把它们打开,那些刚刚出现的服务器可能需要赶上流量和 apache 会在那里发送请求。另一方面,bybusyness 算法正在查看工作人员当前的忙碌程度,您应该尝试一下,看看是否需要优雅地重新启动。

    【讨论】:

      猜你喜欢
      • 2017-06-12
      • 2012-08-05
      • 1970-01-01
      • 2013-08-26
      • 1970-01-01
      • 1970-01-01
      • 2019-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多