开发者社区 问答 正文

用jmeter做压测,为什么经过slb之后tps成功率反而降低了

直接测试一台服务器,tps在160左右,失败率几乎为0,经过slb进行同样的测试,slb下挂3台一样的服务器和镜像,tps没有达到预想中的接近500,还是只有160左右,失败率达到了30%多。这可能是什么情况?百思不得其解,刚开始怀疑是后面数据库的问题,现在不连数据库,直接返回,还是这样的结果。老阔大

展开
收起
somelee 2017-06-22 03:40:49 4047 分享 版权
阿里云 AI 助理回答

根据您描述的情况,直接测试单台服务器时TPS约为160且失败率低,但通过SLB分发到3台相同配置的服务器后,TPS没有显著提升,反而失败率上升至30%。这种情况可能涉及以下几个方面的问题:

  1. SLB配置与健康检查

    • 确认SLB的配置是否正确设置了负载均衡算法,比如确保使用了轮询、加权轮询或最小连接数等策略以充分利用后端资源。
    • 检查SLB的健康检查设置,确认所有后端服务器均被标记为健康状态。健康检查异常可能导致请求分配不均或部分服务器未参与负载。
    • 考虑关闭健康检查功能进行测试,以排除健康检查对性能的影响。
  2. 网络与连接问题

    • 确保客户端到SLB以及SLB到后端ECS之间的网络通畅无阻,包括检查安全组规则和网络ACL设置,避免存在限制流量的策略。
    • 验证后端服务器的网络配置,特别是路由表和防火墙规则,确保没有误将SLB的访问请求屏蔽或路由错误。
  3. 后端服务器资源与配置

    • 尽管您提到不连接数据库后仍存在问题,但仍需监控后端ECS的CPU、内存使用情况,确保它们在压测期间未达到瓶颈。
    • 检查后端服务器的操作系统及Web服务配置(如Nginx、Apache),确保没有配置不当导致的性能瓶颈或超时设置不匹配问题。
  4. 压力测试工具与方法

    • 使用阿里云PTS进行压测时,请确保压测场景设置合理,模拟真实用户分布,并验证压测脚本的一致性,避免因工具本身的限制或配置不当导致的测试结果偏差。
  5. SLB监听与协议

    • 核实SLB监听配置,特别是协议类型(四层TCP/UDP与七层HTTP/HTTPS)及其对应的超时设置,确保它们与业务需求相匹配,避免因超时导致的请求失败。

综上所述,建议从SLB配置、网络状况、后端服务器资源与配置,以及压测工具与方法等多个维度进行细致排查,逐一解决潜在问题点。如果经过上述排查仍未找到明显原因,考虑提交工单联系阿里云技术支持进行深入分析。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答