为什么Nginx的0秒延迟和1秒延迟有很大不同?如何计算呢?

为什么Nginx的0秒延迟和1秒延迟有很大不同?如何计算呢?,nginx,testing,jmeter,performance-testing,qa,Nginx,Testing,Jmeter,Performance Testing,Qa,我使用jmter和ngnix模拟服务器执行了1秒延迟负载测试。 直接为Nginx模拟服务执行负载测试 负载测试jmeter详细信息: 用户:250 加速(秒):125 持续时间:36000(10小时) 模拟后端详细信息: 使用模拟服务的Nginx服务器。 增加1秒延迟(回声睡眠1) 结果 249.4/s测试程序集 但当后端延迟为0秒时,我执行了相同的脚本。 结果 276939.2/s tps 为什么后端有1秒延迟时tps会下降这么多? (我使用了nginx的默认配置) 如何计算上述jmeter脚

我使用jmter和ngnix模拟服务器执行了1秒延迟负载测试。 直接为Nginx模拟服务执行负载测试

负载测试jmeter详细信息: 用户:250 加速(秒):125 持续时间:36000(10小时)

模拟后端详细信息: 使用模拟服务的Nginx服务器。 增加1秒延迟(回声睡眠1)

结果 249.4/s测试程序集

但当后端延迟为0秒时,我执行了相同的脚本。 结果 276939.2/s tps

  • 为什么后端有1秒延迟时tps会下降这么多? (我使用了nginx的默认配置)
  • 如何计算上述jmeter脚本的n秒延迟的预期tps(用户计数、爬升、持续时间、后端延迟)

  • 首先,我认为你用错了词,调查

    延迟。JMeter测量从发送请求前到接收到第一个响应后的延迟。因此,时间包括组装请求以及组装响应的第一部分所需的所有处理,这通常会超过一个字节。协议分析器(如Wireshark)测量通过接口实际发送/接收字节的时间。JMeter时间应该更接近浏览器或其他应用程序客户端所经历的时间

    关于您的观察说明:JMeter只是尽可能快地执行请求(尽可能快地发送请求+请求来回移动所需的时间+应用程序响应时间)

  • 当您添加1秒的人工响应时间延迟时,这意味着每个虚拟用户每秒只能发出一个请求。这就是为什么吞吐量或多或少等于虚拟用户的数量
  • 当您删除此1秒人工响应时间延迟时,JMeter开始以最高速度执行,并且此
    276939.2/s tps
    是250个虚拟用户可以达到的最大吞吐量 一般而言,您应采取以下方法:

  • 确保增加负载,因为只有这样,您才能将增加的负载与增加的响应时间、降低的吞吐量等联系起来。此外,您还能够识别和中断点
  • 确保负载测试准确地表示应用程序的实际使用情况,否则就没有多大意义
  • 确保JMeter在CPU、RAM等方面有足够的空间来运行。就好像JMeter缺少资源一样,它将无法足够快地发送请求。您可以使用自动检查JMeter引擎运行状况,即。还要确保你在跟踪

  • 从后端添加的延迟,我知道每个请求都会影响延迟。但我的问题是为什么延迟会下降到276939.2/s-->249.4/s。如果可能的话。。。我需要知道tps可以达到的最大值(需要知道可以应用我的变量的公式),因为正如上面所说的“每个虚拟用户每秒只能发出一个请求”-我敢打赌,如果你有300个虚拟用户,这个数字大约是299.4:)