我需要什么硬件配置才能在jmeter上运行1000个用户的工作负载以测试我的api

时间:2018-10-18 11:13:21

标签: jmeter

我有一个api,当我向它发送一个学生ID时,它会返回学生数据。现在,我想测试一下每秒有1000个用户点击的api。 我的笔记本电脑配置-酷睿i5,内存8 gB 我的jmeter完成测试,但是线程显示错误

summary +   2642 in 00:00:30 =   88.0/s Avg:   938 Min:    59 Max: 130375 Err:     3 (0.11%) Active: 993 Started: 1000 Finished: 7
Generate Summary Results =  14824 in 00:02:54 =   85.3/s Avg:  1699 Min:    59 Max: 130375 Err:    54 (0.36%)
summary =  14824 in 00:02:54 =   85.3/s Avg:  1699 Min:    59 Max: 130375 Err:    54 (0.36%)
Generate Summary Results +   2636 in 00:00:30 =   87.9/s Avg:   613 Min:    59 Max: 15489 Err:     2 (0.08%) Active: 977 Started: 1000 Finished: 23
Generate Summary Results =  17460 in 00:03:24 =   85.7/s Avg:  1535 Min:        59 Max: 130375 Err:    56 (0.32%)
summary +   2636 in 00:00:30 =   87.9/s Avg:   614 Min:    59 Max: 15489     Err:     2 (0.08%) Active: 977 Started: 1000 Finished: 23
summary =  17460 in 00:03:24 =   85.7/s Avg:  1535 Min:    59 Max: 130375         Err:    56 (0.32%)
:
:
:
:
summary =  17460 in 00:010:24 =   123.7/s Avg:  5535 Min:    59 Max: 130375         Err:    723 (70.3%)

到723线程结束时失败

如果我与100个用户一起运行测试,则我的api返回响应,但测试成功,但是当我与1000个用户一起运行时,大多数线程失败或在完成后仍保持活动状态

2 个答案:

答案 0 :(得分:1)

JMeter的默认配置不适合高负载,您需要对其进行调整才能启动1000个线程。

  1. 确保使用latest JMeter versionServer JREJDK的64位版本
  2. Increase JVM Heap size allocated to JMeter至〜6 GB
  3. 在测试计划中禁用(或删除)listeners
  4. 确保在测试过程中监视运行JMeter的计算机上的CPU和RAM使用情况,可以为此使用JMeter PerfMon plugin。 JMeter必须有足够的运行空间,如果缺少RAM或CPU,它将无法足够快地发送请求。如果您发现JMeter机器过载-您将不得不考虑distributed testing

  5. Harwdare的要求将根据测试性质的不同而有所不同,即测试前后的处理器数量,断言,请求和响应大小,应用程序响应时间等,因此没有像X硬件= Y虚拟用户这样的映射。 ,您将需要针对每个不同的测试计划进行评估。请记住逐渐增加负载并关注健康指标

答案 1 :(得分:0)

让我们使用简单的数学来计算它。在HTTP请求的最大线程大小下,大约为。 1MB(有效负载除外)。

1MB * 1000 = 1000MB = 1000 GB并发用户需要至少1 GB的堆大小。

500 MB -用于其他任务,例如侦听器,汇总结果

总计至少需要 1500 MB 才能运行此测试。在 / apache-jmeter / bin / jmeter 文件中将jmeter配置为使用这样的内存。

多线程也取决于CPU能力,因此请尝试使用多核CPU。

什么是CPU上的线程? 在计算机体系结构中,多线程是中央处理器(CPU)(或多核处理器中的单核)能够同时执行多个进程或线程(由操作系统支持)的能力。