以下为压测和调试日志中,常见的 Error 信息:

  • class java.net.SocketTimeoutException:null

    表示请求在等待响应或者读取中途(idle)超时。请检查服务端健康状况或者 PTS 的压测 API 超时时间的设置是否合理,另外还有可能是服务端处理能力出现瓶颈。

  • class java.net.ConnectException:null

    表示请求在与远端(被压测端)建立 TCP 连接时就出现失败或者被远端拒绝。请检查服务端健康状况,或者是网络连接层是否有瓶颈。

  • class java.util.concurrent.TimeoutException:null

    表示请求在与远端(被压测端)建立 TCP 连接时就出现失败或者被远端拒绝。请检查服务端健康状况,或者是网络连接层是否有瓶颈。

  • class org.apache.http.ConnectionClosedException:Connection closed

    表示连接异常关闭,服务端主动关闭了连接。

  • class java.io.IOException:Connection reset by peer

    表示连接被重置。若使用了 SLB,请查看 SLB 的配置是否有问题。

  • class org.apache.http.ConnectionClosedException:Connection closed unexpectedly

    表示数据尚未接收完毕,连接就已关闭。可能服务端未及时响应或者提前终止调试或压测。

  • class java.lang.RuntimeException:java.net.UnknownHostException

    表示域名信息无法解析。请检查域名是否已经正常注册并可以解析、未注册的域名是否已进行域名绑定。

建议结合 Timing 瀑布模型查看,各种报错都可以体现在 Timing 瀑布模型中,例如:

  • 建立连接环节超时pts-连接环节超时
  • 等待响应或者读取响应的间隔时间超时

    Waiting(TTFB)表示等待第一个响应字节的时间。这个时间包括一次完整的往返和延迟,同时包括了服务器应对响应所用的时间。

  • class org.apache.http.client.CircularRedirectException

    表示请求出现了循环重定向的情况(A -> B -> C -> A),或者跳转超过了10次(A1 -> A2 -> A3... -> A10 ->A11)。建议取消302跳转配置后压测查看原始请求信息,并可结合Timin瀑布流查看跳转具体路径。

    pts压测302报错pts-日志详情-瀑布流