【问题标题】:No latency measured increasing request number没有延迟测量增加请求数
【发布时间】:2018-03-09 16:52:02
【问题描述】:

我正在本地网络中使用 Ubuntu 虚拟机上的 Apache 服务器执行容量测试,并在物理 Ubuntu 机器上运行 JMeter。

增加请求率我可以很容易地观察到最大吞吐量并描述它是如何从给定的请求率开始饱和的,我发现平均时间没有增加。如果我尝试访问一个非常重的页面(3 MB 文本 + 10 MB 图像 + 50 MB 视频),我什至可以在一分钟内尝试数百个样本,但与测量的平均响应时间相比,我发现延迟没有增加要求。我开始认为本地网络是问题所在。

如何设置实验以观察响应时间的增加?

【问题讨论】:

  • 请为您的 JMeter 提供堆配置。此外,包括响应时间和吞吐量以及线程的任何屏幕截图

标签: ubuntu networking jmeter load-testing response-time


【解决方案1】:

即使访问非常繁重的页面,您也没有看到平均时间增加的原因是 JMeter 默认不会尝试下载所有图像,

您可以在HTTP Request 高级选项卡中更改默认行为,选中Retrieve All Embedded Resources 选项

从 HTML 文件中检索所有嵌入式资源 告诉 JMeter 解析 HTML 文件并为文件中引用的所有图像、Java 小程序、JavaScript 文件、CSS 等发送 HTTP/HTTPS 请求。

这样 JMeter 将为您的 HTML 下载所有相关文件。

你可以调整并检查Parallel downloads是否会变得太慢。

【讨论】:

    【解决方案2】:

    检索所有嵌入式资源确实会增加响应时间,正如 user7294900 所回答的那样。您可以通过特定域 via regex 排除嵌入资源,例如 ^((?!domain1|domain 2).)*$,这样您的测试就不会影响任何第三方服务。

    您可以尝试以下其他方法:

    1. 禁用缓存。这是通过 HTTP 缓存管理器配置完成的。更多详情请查看this article。如果您使用缓存,会有状态码为 304 的 HTTP 请求 - 未修改,执行速度非常快。
    2. 调查 HTTP 响应。在实际负载测试中,断言元素应尽可能少,但为了调查问题,请尝试添加一些元素并在您的机器上以 GUI 模式本地运行测试。我相信this article 可能对您有所帮助。
    3. 您可能会达到内部网络限制。防火墙可能会阻止您的请求。您可以与网络管理员讨论您的结果。

    【讨论】:

      【解决方案3】:

      Latency 对响应大小的依赖并不是那么紧密,基本上延迟是TTFB (Time To First Byte)。

      此外,表现良好的 Web 应用程序会从静态缓存资源(甚至 CDNs)返回“大量”内容,因此它不应该是一项昂贵的操作。

      【讨论】:

        猜你喜欢
        • 2015-08-14
        • 2020-12-13
        • 2016-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-08
        相关资源
        最近更新 更多