如何同时测试Jmeter中的100万用户?我应该使用什么线程和加速期?
我试过,但我给了线程数1000000,我必须给出Ramp up周期,不允许在并发测试 .
加速期告诉JMeter需要多长时间才能“加速”到所选的全部线程数 . 如果使用10个线程,并且加速时间为100秒,则JMeter将花费100秒来使所有10个线程启动并运行 . 每个线程将在上一个线程开始后10(100/10)秒开始 . 如果有30个线程且120秒的加速周期,则每个连续的线程将延迟4秒 . 加速需要足够长以避免在测试开始时过大的工作负载,并且足够短以使最后的线程在第一个完成之前开始运行(除非有人想要这样做) . 从Ramp-up =线程数开始,根据需要调高或调低 .
如果你想同时启动你的所有线程你可以设置一个 ramp-up = 1 这意味着jmeter将花费1秒钟来启动并运行所有线程!或者0来尽快启动它们 . 但我希望你有一个很好的硬件来支持这个 .
ramp-up = 1
http://jmeter.apache.org/usermanual/test_plan.html
实际上我建议选择加速,这样负载会增加 gradually . 例如,您的应用程序能够为500k用户提供服务而不会出现任何延迟,从500k到700k的响应时间增长,其中750k并发用户就会死亡 .
如果您同时释放所有1M用户,则无法获得上述信息,您只需知道您的应用程序不支持1M用户 .
因此,我建议增加循环次数,以便现有用户可以在新用户到达时继续工作,这样您就可以逐渐增加高达1M的并发虚拟用户的负载
使用Thread Group中的"Scheduler"选项(或使用Runtime Controller)定义所需的测试持续时间
将"Loop Count"设置为 Forever 或将 -1 放在那里 .
Forever
-1
将您的加速阶段设置为整个测试持续时间的20%到50%之间
可选地,当负载恢复正常时,实现"ramp-down"以查看受测系统行为也是很好的
另请注意以下事项:
JMeter默认设置足以进行测试开发和调试,您需要调整它们以实现最大性能 . 查看9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure指南,了解JMeter性能调整建议
您不太可能无法使用单台机器模拟1M用户,因此请考虑设置Distributed JMeter architecture
只有当响应时间低于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(逐渐关闭线程以检查资源恢复)
请注意首先耗尽的资源,调整和重复 .
3 回答
如果你想同时启动你的所有线程你可以设置一个
ramp-up = 1
这意味着jmeter将花费1秒钟来启动并运行所有线程!或者0来尽快启动它们 . 但我希望你有一个很好的硬件来支持这个 .http://jmeter.apache.org/usermanual/test_plan.html
实际上我建议选择加速,这样负载会增加 gradually . 例如,您的应用程序能够为500k用户提供服务而不会出现任何延迟,从500k到700k的响应时间增长,其中750k并发用户就会死亡 .
如果您同时释放所有1M用户,则无法获得上述信息,您只需知道您的应用程序不支持1M用户 .
因此,我建议增加循环次数,以便现有用户可以在新用户到达时继续工作,这样您就可以逐渐增加高达1M的并发虚拟用户的负载
使用Thread Group中的"Scheduler"选项(或使用Runtime Controller)定义所需的测试持续时间
将"Loop Count"设置为
Forever
或将-1
放在那里 .将您的加速阶段设置为整个测试持续时间的20%到50%之间
可选地,当负载恢复正常时,实现"ramp-down"以查看受测系统行为也是很好的
另请注意以下事项:
JMeter默认设置足以进行测试开发和调试,您需要调整它们以实现最大性能 . 查看9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure指南,了解JMeter性能调整建议
您不太可能无法使用单台机器模拟1M用户,因此请考虑设置Distributed JMeter architecture
只有当响应时间低于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(逐渐关闭线程以检查资源恢复)
请注意首先耗尽的资源,调整和重复 .