performance - 在 Jmeter 中如何找到 1k/2k 并发用户的响应时间,以及 1k 和 2k 用户的 Ram-Up 时间
问题描述
我有一个要求,比如 API 应该能够在 5 秒内处理 5k 并发用户。我如何在 jmeter 中测试这个场景。对于 1k 并发用户,应该在 Jmeter 中设置 RampUp 时间。
解决方案
5 秒 5000 很容易达到:
关于加速,我只能给你:
来自JMeter 文档的引用:
加速期告诉 JMeter 需要多长时间才能“加速”到选择的全部线程数。如果使用 10 个线程,并且加速周期为 100 秒,那么 JMeter 将需要 100 秒才能让所有 10 个线程启动并运行。每个线程将在前一个线程开始后 10 (100/10) 秒后开始。如果有 30 个线程和 120 秒的加速周期,那么每个连续的线程将延迟 4 秒。
加速需要足够长以避免在测试开始时工作负载过大,并且足够短以使最后一个线程在第一个线程完成之前开始运行(除非有人希望发生这种情况)。
从 Ramp-up = 线程数开始,并根据需要向上或向下调整。
以及一条关于总体提升的建议:如果您正在进行某种形式的压力测试,最好逐渐增加负载,这样您就可以将增加的负载与吞吐量和响应时间相关联,因为运行 5000 个线程 5 秒只会为您提供有关此工作负载响应时间的基本信息,当性能开始下降时,您将无法判断应用程序每秒可以支持的最大用户/请求数是多少,等等所以你可以考虑这样的负载模式:
并查看Response Times Over Time图表,了解并发用户数与应用程序响应时间之间的关系
推荐阅读
- google-cloud-platform - 允许对使用 Terraform 配置的 GCP 虚拟机实例进行 SSH 访问
- c# - 使用 SemaphoreSlim 锁定方法时的奇怪输出
- c# - 我正在学习如何在 C# 中实现依赖注入 [DI]。这是作为示例的有效 DI 程序吗?
- android - 如何更改工具栏的默认导航按钮?
- ios - 按字典中的日期划分表视图
- scala - Spark中减少网络洗牌的技巧
- r - 从循环传递参数以在 Rmarkdown 中生成动态报告
- node.js - 使用 github 操作将部署反应到 firebase
- python - 以数据库配置为参数的单元测试 Python 方法
- c# - 使用 LINQ 自定义排序