使用代理平衡器流量作为反向代理运行的 Apache 似乎没有均匀分布

使用代理平衡器流量作为反向代理运行的 Apache 似乎没有均匀分布

我们使用代理平衡器将 Apache 作为反向代理运行,我们从 7 台云机器运行 jMeter 负载测试,但流量似乎没有均匀分布,我认为这是一个 Apache 配置问题,但不确定是什么

基本上在我们的 VirtualHost 指令中我有:

   ProxyPreserveHost on
   ProxyRequests Off
   ProxyPass / balancer://my-site/
   ProxyPassReverse / balancer://my-site/
   Header add Set-Cookie "route=.%{BALANCER_WORKER_ROUTE}e; path=/"

<Proxy balancer://my-site>
   BalancerMember https://MYMACHINE:8443 route=1 loadfactor=20
   BalancerMember https://MYMACHINE:8443 route=2 loadfactor=20
   ProxySet stickysession=route
</Proxy>

最初它没有 loadfactor=20,负载平衡做得不好,在我添加它之后,情况有所改善,但不是很好。流量仍然会被路由到比其他机器多 1-2 台机器(我们总共有 5 台机器)。

答案1

由于您正在运行粘性会话,因此您不能期望每个成员的工作负载完全相等。如果我理解正确的话,您有 7 台机器发出请求,平衡器中有 5 台机器来回答这些请求 - 如果是这样的话,那么 3 台服务器各有 1 个客户端,2 台服务器各有 2 个客户端 - 所以这是完全可以预料到的。

随着节点数量的增加,这种情况将会变得均匀,但是当您使用粘性会话时,不可能获得完美均匀的分布。

请求的动态分配默认考虑已分配的请求计数,但显然在节点被粘贴后无法对其进行更改;它不计算每个后端有多少个节点被粘贴。

您可以尝试添加ProxySet lbmethod=bybusyness到您的<Proxy balancer://my-site>配置中;这可能有助于在更高的负载下使事情更加均衡(但当您处理如此低的客户端数量时不会改变任何事情)。

相关内容