问题现象

PTS 的采样日志上有大量的 503,但是后端服务器上确没有相关信息。

可能原因

如果压测的接口错误中有很多 503,同时满足以下的现象,则说明该报错是 SLB 抛出的。因为压测场景中发起压力的源 IP 有限,单 IP 触发了 SLB 集群的单 Proxy 限流;或者因为请求客户端的Connection会默认长连,IP较少时,会导致其不能完全做到负载均衡。

  • 接口是 HTTP/HTTPS
  • 压测环境入口的是 SLB,无论是公网还是内网SLB
  • 后端服务并没有抛出 503,甚至没有任何记录
  • 503 报错信息与下面内容相同:
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html>
    <head><title>503 Service Temporarily Unavailable</title></head>
    <body bgcolor="white">
    <h1>503 Service Temporarily Unavailable</h1>
    <p>The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.</body>
    </html>
pts日志详情

解决方案

  1. 升级 PTS 资源包。PTS 9.9 元资源包由于成本原因只有一个发起源 IP,只要是 628 及以上资源包即可享有最大 70 个及以上源IP。
  2. 使用 IP 扩展功能
  3. 设置更高的目标并发或者 RPS。
  4. 在请求header中设置 Connection:close的配置。新建API会默认配置,修改的时候可按需使用。
    PTS API配置