开发者社区> 问答> 正文

为什么请求不均衡?

为什么请求不均衡?

展开
收起
保持可爱mmm 2020-03-29 11:54:30 1142 0
3 条回答
写回答
取消 提交回答
  • 技术架构师 阿里云开发者社区技术专家博主 CSDN签约专栏技术博主 掘金签约技术博主 云安全联盟专家 众多开源代码库Commiter

    可能原因 负载均衡请求不均衡可能有以下几种原因:

    ECS实例请求连接数较少。 不同ECS实例的性能不同导致请求不均衡。 说明 ECS实例内存使用情况不能准确的判断请求转发是否均衡。 开启了会话保持功能 。 配置了会话保持,当访问负载均衡实例的客户端又很少时,容易导致不均衡,尤其在使用少量客户端对负载均衡进行测试的时候。例如TCP监听,开启了会话保持(四层是基于来源地址做会话保持),使用一台客户端对负载均衡实例进行压测,就会导致不均衡。

    ECS健康检查异常 。 后端服务器ECS的健康建状态异常会导致不均衡,尤其在压测的时候容易忽略后端服务器ECS的健康检查状态,如果有后端服务器ECS健康检查失败或者健康检查状态经常跳跃(好到坏,又从坏到好,反复变化)必然会导致不均衡。

    TCP Keepalive保持长连接 。 后端服务器ECS有些开启了TCP Keepalive保持长连接,而有些又没有开启,则连接会在保持长连接的后端服务器上堆积,造成不均衡。

    2020-03-29 23:17:21
    赞同 展开评论 打赏
  • 有点尴尬唉 你要寻找的东西已经被吃掉啦!

    请求分布不均衡可能有以下几种原因:

    总体的请求数较少。例如,总请求数为7,后端服务器组中共有3台ECS实例,不考虑其他功能的影响,3台ECS实例中将有1台被分配到3个客户端请求,2台ECS实例被分配到2个客户端请求。
    后端服务器组中ECS实例的权重不一致。ECS实例的权重越高,被分配到的请求数越多,详情可参见编辑后端服务器的权重。
    后端服务器的健康状态异常。开启负载均衡SLB的健康检查功能时,如果健康检查发现后端服务器组中某台ECS实例出现异常,则该实例暂时不会被分配请求;当健康检查发现该实例恢复正常时,将重新分配请求到该实例,于是出现请求分配不均衡的现象。详情可参见健康检查。
    负载均衡SLB实例开启了会话保持功能。开启会话保持后,如果客户端的IP地址相对固定,或者客户端的请求数差异较大,容易出现请求分配不均衡的现象。示例如下。
        客户端的IP地址相对固定。例如,CDN的回源请求通过SLB进行负载均衡。CDN回源的IP地址相对集中和固定,相同源IP地址的请求将始终转发给同一台后端服务器,因此造成分配不均衡的现象。详情可参见添加TCP监听。
    
            注:该情况仅适用于TCP监听的SLB实例,因为TCP协议基于IP地址进行会话保持。
    
        客户端的请求数差异较大。例如,使用一台客户端对负载均衡SLB实例进行网站访问的压力测试。在会话期间,该客户端的所有测试请求将始终转发给同一台后端服务器。
    后端服务器组中仅部分ECS实例开启了TCP的Keepalive保持长连接特性。当后端服务器中部分ECS实例开启该特性,而部分ECS实例未开启时,连接会在开启该特性的ECS实例中堆积。详情可参见TCP Keepalive HOWTO。
    
    2020-03-30 09:46:36
    赞同 展开评论 打赏
  • 可能原因 请求分布不均衡可能有以下几种原因: 总体的请求数较少。例如,总请求数为7,后端服务器组中共有3台ECS实例,不考虑其他功能的影响,3台ECS实例中将有1台被分配到3个客户端请求,2台ECS实例被分配到2个客户端请求。 后端服务器组中ECS实例的权重不一致。ECS实例的权重越高,被分配到的请求数越多,详情可参见编辑后端服务器的权重。 后端服务器的健康状态异常。开启负载均衡SLB的健康检查功能时,如果健康检查发现后端服务器组中某台ECS实例出现异常,则该实例暂时不会被分配请求;当健康检查发现该实例恢复正常时,将重新分配请求到该实例,于是出现请求分配不均衡的现象。详情可参见健康检查。 负载均衡SLB实例开启了会话保持功能。开启会话保持后,如果客户端的IP地址相对固定,或者客户端的请求数差异较大,容易出现请求分配不均衡的现象。示例如下。 客户端的IP地址相对固定。例如,CDN的回源请求通过SLB进行负载均衡。CDN回源的IP地址相对集中和固定,相同源IP地址的请求将始终转发给同一台后端服务器,因此造成分配不均衡的现象。详情可参见添加TCP监听。 注:该情况仅适用于TCP监听的SLB实例,因为TCP协议基于IP地址进行会话保持。 客户端的请求数差异较大。例如,使用一台客户端对负载均衡SLB实例进行网站访问的压力测试。在会话期间,该客户端的所有测试请求将始终转发给同一台后端服务器。 后端服务器组中仅部分ECS实例开启了TCP的Keepalive保持长连接特性。当后端服务器中部分ECS实例开启该特性,而部分ECS实例未开启时,连接会在开启该特性的ECS实例中堆积。详情可参见TCP Keepalive HOWTO。 排查思路 请求分布不均衡的排查思路如下。 查看负载均衡SLB的监控信息。如果总体的请求数较少,轻微的请求分配不均衡属于正常现象。关于如何查看监控信息,可参见查看监控。 检查后端服务器组中各个ECS实例的权重是否相同。如果权重不同,则请求分配不均衡属于正常现象。如果您需要修改权重,可参见编辑后端服务器的权重。 查看健康检查日志,确认是否存在健康检查失败或波动现象,并查找原因。关于如何查看健康检查日志,请参见查看健康检查日志。 检查是否开启会话保持功能。如果开启了会话保持功能,轻微的请求分配不均衡属于正常现象。了解更多会话保持相关问题,可参见会话保持常见问题。 检查后端服务器组中是否仅部分ECS实例开启了TCP的Keepalive保持长连接特性。可根据业务实际情况进行调整。 检查监听的调度算法是否为加权最小连接数(WLC)。如果是,您可以尝试更改为加权轮询(WRR)算法。关于调度算法的概念,请参见添加TCP监听中的调度算法介绍。

    2020-03-30 09:47:02
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
大规模场景下KubernetesService 负载均衡性能 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载