【问题标题】:Non HTTP response message: The target server failed to respond: Is my server failing to handle load非 HTTP 响应消息:目标服务器未能响应:我的服务器是否无法处理负载
【发布时间】:2015-03-12 14:46:21
【问题描述】:

我使用 jmeter 准备了一个 jmx 文件并在 blazemeter 上运行该测试用例来测试我的服务器上的负载。测试完成后,我可以看到我的一项服务失败了。虽然不是所有时候,但有时。在 blazemeter 的错误选项卡中,我可以看到这是给的

Non HTTP response message: The target server failed to respond

我不确定,这是我的服务器无法处理负载,还是其他原因。在我的设置中,线程是 50。任何人都可以帮助我,这是因为服务器无法处理加载。提前致谢。

【问题讨论】:

    标签: performance jmeter blazemeter


    【解决方案1】:

    您似乎遇到了Connection Reset since JMeter 2.10 ? Wiki 文章中描述的问题。

    如果您最近升级到 JMeter 2.10 或 2.11,您可能已经注意到此类错误有所增加:

    套接字关闭

    非HTTP响应码:org.apache.http.NoHttpResponseException(目标服务器响应失败)

    所以

    1. 将 HTTP 请求的“实现”更改为 HTTPClient4

    2. 将接下来的 2 行添加到 user.properties 文件(通常位于 JMeter 安装的 /bin 文件夹下)

      httpclient4.retrycount=1
      hc.parameters.file=hc.parameters
      
    3. hc.parameters 文件(也位于 JMeter 的 /bin 文件夹下)中,取消注释以下行:

      http.connection.stalecheck$Boolean=true
      

    有关不同 JMeter 属性以及设置和更改它们的方法的更多信息,请参阅Apache JMeter Properties Customization Guide

    【讨论】:

    • 我将在 blazemeter 上运行 jmx 文件。所以我将无法更改 user.properties 和 hc.parameters 文件。只需更改 HTTPClient4 就足够了吗?
    • 我相信,如果您将 user.propertieshc.properties 文件连同您的测试脚本一起上传,它们就会被拾取。根据 Apache JMeter 属性定制指南 - For “user.properties” and “system.properties” files overrides – just drop them to the same place where .jmx and .jar files usually go.
    • 我认为您在评论中指的是 hc.parameters,Dmitri T?
    • 很好,确实应该是hc.parameters 或任何匹配“hc.parameters.file”属性值的东西,谢谢。
    • @DmitriT,即使按照您的步骤操作,我也遇到了同样的问题“非 HTTP 响应代码:org.apache.http.NoHttpResponseException(目标服务器无法响应)”。我看到线程数为 50 且加速时间为 10 秒或 60 秒的问题。但如果加速时间为 120 秒,则不存在此问题。我正在使用最新版本的 Jmeter 3.0。您认为是我的服务器无法处理负载吗?请帮忙!谢谢!。
    【解决方案2】:

    对于 jmeter 2.13 DmitriT 解决方案有类似的问题让我指出了正确的方向,但在我的情况下,java 或 HttpClient3.1 有效,4.0 没有。

    【讨论】:

      【解决方案3】:

      我什么都做了。

      将您的 HTTP 请求“实施”到 HTTPClient4 将接下来的 2 行添加到 user.properties 文件(通常位于 JMeter 安装的 /bin 文件夹下)

      httpclient4.retrycount=1 hc.parameters.file=hc.parameters 在 hc.parameters 文件(也位于 JMeter 的 /bin 文件夹下)取消注释以下行:

      http.connection.stalecheck$Boolean=true

      但在 apache jmeter 5.1 中仍然面临这个问题

      【讨论】:

        【解决方案4】:

        遇到了同样的问题,并通过取消选中 HTTP 请求的“使用 KeepAlive”选项来修复它。请参考截图。我猜,根本原因与连接被关闭和 JMeter 客户端试图使用相同的连接有关。

        【讨论】:

        • 这正在解决问题,但这种方法似乎降低了吞吐量。知道为什么吗??
        • @VajiraPrabuddhaka - 只是在这里猜测:关闭 KeepAlive 选项将需要在每个 HTTP 请求上创建一个新的 TCP 连接,这可能是一种开销并会降低吞吐量。你可以在这里阅读更多 - imperva.com/learn/performance/http-keep-alive
        【解决方案5】:

        在我的情况下,是我正在执行的呼叫的标头导致了问题。 那是:

        Content-Type:application/json;charset=UTF-8
        

        设置为:

        Content-Type:application/json
        

        【讨论】:

        • @Dmitri 我面临同样的问题并尝试了上述配置,但问题仍然存在。这个问题是来自 Apache 端还是服务器无法处理此类请求?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-08
        • 2019-10-04
        • 1970-01-01
        相关资源
        最近更新 更多