首页 文章

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

提问于
浏览
0

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

我试过,但我给了线程数1000000,我必须给出Ramp up周期,不允许在并发测试 .

3 回答

  • 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

  • 0

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

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

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

    • 使用Thread Group中的"Scheduler"选项(或使用Runtime Controller)定义所需的测试持续时间

    • 将"Loop Count"设置为 Forever 或将 -1 放在那里 .

    • 将您的加速阶段设置为整个测试持续时间的20%到50%之间

    • 可选地,当负载恢复正常时,实现"ramp-down"以查看受测系统行为也是很好的

    另请注意以下事项:

  • 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(逐渐关闭线程以检查资源恢复)

    请注意首先耗尽的资源,调整和重复 .

相关问题