Jmeter 性能测试结果-吞吐量波动

Jmeter 性能测试结果-吞吐量波动,jmeter,performance-testing,loadrunner,Jmeter,Performance Testing,Loadrunner,我正在尝试在我们的一个应用程序中执行负载测试 测试非常简单,只有一个线程组和三个HTTP请求 登录(登录后,等待5秒钟) 订购(订购后,等待5秒钟) 注销(注销后,等待5秒钟) 在整个测试过程中,反复重复上述3个步骤 我试着为不同的用户运行测试(100个用户2小时,另一个测试200个用户2小时,另一个测试300个用户3小时) 我的吞吐量/响应时间图的结果总是有很大的波动 我没有看到上述3个HTTP请求中任何一个的特定问题。 它们的响应时间都在150毫秒到70秒之间。当我在远程机器上运行测试

我正在尝试在我们的一个应用程序中执行负载测试

测试非常简单,只有一个线程组和三个HTTP请求

  • 登录(登录后,等待5秒钟)
  • 订购(订购后,等待5秒钟)
  • 注销(注销后,等待5秒钟)
  • 在整个测试过程中,反复重复上述3个步骤
我试着为不同的用户运行测试(100个用户2小时,另一个测试200个用户2小时,另一个测试300个用户3小时)

我的吞吐量/响应时间图的结果总是有很大的波动

我没有看到上述3个HTTP请求中任何一个的特定问题。 它们的响应时间都在150毫秒到70秒之间。当我在远程机器上运行测试时,我尝试手动访问应用程序-一次非常慢/一段时间后非常快

不幸的是,我们无法访问服务器来检查服务器的CPU内存利用率

我不希望我的成绩有一个非常平滑的曲线。但波动应在可接受范围内<代码>吞吐量从2到60到2不等这一巨大波动的原因是什么

其他信息:

  • 用户:300
  • Ram启动时间:3000秒
  • 试验进行2小时50分钟
  • 在2小时50分钟内,它总共发送了22万个请求
      您没有提到有多少线程,也没有提到什么类型的计时器

      交易似乎是同步进行的

      检查您的加速期。
      如果您有60个线程,请在60秒内将其递增,以查看发生了什么


      或者检查您的计时器类型,使用高斯随机计时器或统一随机计时器。

      您没有提到有多少线程,也没有提到什么类型的计时器

      交易似乎是同步进行的

      检查您的加速期。
      如果您有60个线程,请在60秒内将其递增,以查看发生了什么



      或者检查您的计时器类型,使用高斯随机计时器或均匀随机计时器。

      我有恒定的时间。我知道,在低吞吐量下花费的时间无论如何都比5秒长。你能查看网络统计数据吗?防病毒或防火墙配置会导致应用程序无法获得DDoS吗?需要检查的一件事可能是相关机器上的netstat/top/vmstat,以查看在看到高或低交易率的同时是否发生了有趣的事情。但我同意之前的评论,这似乎是同步发生的事情。锯齿形图案最初在水平方向上被压缩得更多,测试结束时周期变长。这可能表明客户端最初存在某种同步,随着时间的推移,这种同步会慢慢消失。我有固定的时间,我知道,在低吞吐量下花费的时间无论如何都要比5秒长得多。你能查看网络统计数据吗?防病毒或防火墙配置会导致应用程序无法获得DDoS吗?需要检查的一件事可能是相关机器上的netstat/top/vmstat,以查看在看到高或低交易率的同时是否发生了有趣的事情。但我同意之前的评论,这似乎是同步发生的事情。锯齿形图案最初在水平方向上被压缩得更多,测试结束时周期变长。这可能表明客户端最初存在某种同步,随着时间的推移,这种同步会慢慢消失。我有固定的时间,我知道,在低吞吐量下花费的时间无论如何都要比5秒长得多。你能查看网络统计数据吗?防病毒或防火墙配置会导致应用程序无法获得DDoS吗?需要检查的一件事可能是相关机器上的netstat/top/vmstat,以查看在看到高或低交易率的同时是否发生了有趣的事情。但我同意之前的评论,这似乎是同步发生的事情。锯齿形图案最初在水平方向上被压缩得更多,测试结束时周期变长。这可能表明客户端最初存在某种同步,这种同步会随着时间的推移慢慢消失。根据给定的信息,我不太确定,由于给定的请求序列延迟了5秒,因此有可能在某个时间点,您的所有用户都在执行某些操作(任何请求)在接下来的5秒钟内,系统处于空闲状态或负载非常低。这就是为什么我认为你们看到了这种波动。这也可能因提供的启动时间而异,但当您手动检查此项时,当系统处于负载状态时,您可能会有较高的响应时间,当线程处于等待状态时,您可能会得到快速响应。要解决此问题,我认为您应该将延迟降至最低,并将用户分布在实际的启动时间内。如果我遗漏了什么,请纠正我。@NachiketKate,我在问题中又补充了一些信息。在我看来,你的理论并不正确。根据给定的信息,我不太确定,由于给定的请求序列中有5秒的延迟,在某个时间点,所有用户都在执行某些操作(任何请求),在接下来的5秒钟内,系统处于空闲状态或负载非常低。这就是为什么我认为你们看到了这种波动。这也可能因提供的启动时间而异,但当您手动检查此项时,当系统处于负载状态时,您可能会有较高的响应时间,当线程处于等待状态时,您可能会得到快速响应。要解决此问题,我认为您应该将延迟降至最低,并将用户分布在实际的启动时间内。如果我遗漏了什么,请纠正我。@NachiketKate,我已经加上了