如何同时测试Jmeter中的100万用户?我应该使用什么线程数&加速期?

时间:2016-10-10 09:28:53

标签: performance jmeter

如何同时测试Jmeter中的100万用户?我应该使用什么线程数&加速期?

我尝试但是我给了线程数1000000并且我必须给出不允许并发测试的Ramp up期间。

3 个答案:

答案 0 :(得分:0)

  

加速期告诉JMeter需要多长时间才能“加速”到所选的全部线程数。如果使用10个线程,并且加速时间为100秒,则JMeter将花费100秒来使所有10个线程启动并运行。每个线程将在上一个线程开始后10(100/10)秒开始。如果有30个线程且120秒的上升周期,则每个后续线程将延迟4秒。

     

加速需要足够长,以避免过大的工作负荷   测试开始,并且足够短以至于最后一个线程开始运行   在第一个完成之前(除非有人想要这样做)。

     

从Ramp-up =线程数开始,向上或向下调整为   需要的。

如果你想同时启动你的所有线程你可以设置ramp-up = 1这意味着jmeter将花费1秒钟来启动并运行所有线程!或者0来尽快启动它们。但我希望你有一个很好的硬件来支持这个。

http://jmeter.apache.org/usermanual/test_plan.html

答案 1 :(得分:0)

实际上我建议选择加速,这样负荷会逐渐增加 。例如,您的应用程序能够为500k用户提供服务而不会出现任何延迟,从500k到700k的响应时间增长,在750k并发用户时它就会死亡。

如果您一次性释放所有1M用户,则无法获得上述信息,您只需知道您的应用程序不支持1M用户。

因此我建议增加循环次数,以便现有用户可以在新用户到达时继续工作,这样您就可以逐渐增加高达1M的并发虚拟用户负载

  1. 使用" Scheduler"定义所需的测试持续时间。 Thread Group中的选项(或使用Runtime Controller
  2. 设置"循环计数"到Forever或将-1放在那里。
  3. 将您的加速阶段设置为总测试持续时间的20%到50%
  4. 可选择实施"减速"在负载恢复正常时查看受测系统行为
  5. 另请注意以下事项:

答案 2 :(得分:0)

仅当响应时间低于1秒时,1,000,000个线程才能获得1,000,000个每秒事务数。您将需要足够的线程来包含系统响应时间。 10,000,000个线程允许最多10秒的响应时间。

其他人是正确的,慢慢加速到全速率,以便有时间查看问题所在。

我会使用这些设置来开始调整实验室和奴隶数:

  • 主题数:10,000,000
  • 加速期:1800秒(30分钟)
  • 循环:永远

吞吐量整形计时器:   - 启动RPS第1行:1   - 结束RPS第1行:1,000,000   - 持续时间第1行:1800(与提升相同)

  • 启动RPS第2行:1,000,000
  • 结束RPS第2行:1,000,000
  • 持续时间第2行:600(全速10分钟)

  • 启动RPS第3行:1,000,000

  • 结束RPS第3行:1
  • 持续时间第3行:600(逐渐关闭线程以检查资源恢复)

注意首先耗尽什么资源,调整并重复。