簡體   English   中英

Tomcat應用服務器中的負載分布不均衡,前端Apache httpd Web服務器中的代理平衡

[英]Uneven load distribution in Tomcat application servers proxy balanced in front end Apache httpd web server

我正在使用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 Web服務器均衡器-管理器檢查該應用程序服務器時,我面臨着負載分布不均的問題。 實際上,排名前13位的應用程序服務器(app01至app13,假設batch1)正在獲得幾乎相等的負載,而其余的應用程序服務器(app14至app16,app21至app28,假設batch2)獲得了相等的負載。 batch1應用程序服務器的負載幾乎是batch2應用程序服務器的3倍。

我還嘗試診斷是否有任何網絡問題可能引起此問題。 因此,嘗試使用traceroute命令進行診斷,並為批處理服務器(批處理1和批處理2)發現了幾乎類似的模式,具有30個躍點。

我不知道是什么問題? 誰能幫我一下。 任何幫助,非常感謝。

重新啟動Web服務器可以正常解決該問題。 更改后重新加載Web服務器(以避免停機)不會關閉所有連接,並在啟動時再次打開它。 這將創建一個連詞。 我認為這可能是應用服務器之間負載平衡不均衡的原因。 還是謝謝你 :)

如果您沒有使用忙碌方法,那么只有在正常重啟后,負載才是平均的。 根據https://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html中的描述,請求或流量基於歷史值,因此,例如,如果您有一半的應用服務器處於離線狀態,則請求或流量可能會不平衡有一會兒,然后您將它們啟動,剛啟動的那些服務器可能需要趕上流量,而apache會將請求發送到那里。 另一方面,bybusyness算法正在查看工人當前的繁忙程度,您應該嘗試一下,看看是否需要正常重啟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM