问题现象

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配置