前言

为了练习使用Jmeter压测MQTT,在内网环境搭建了EMQ v4.4。整个环境使用了6台PC,CPU是相同型号,EMQ服务器和控制机采用8G内存,负载机4G内存。EMQ服务器和负载机均为CentOS7.9。

负载机环境

指标数值
CPUIntel(R) Core(TM) i7-4770 CPU @ 3.40GHz
内核4核8线程
内存4GB
系统CentOS Linux release 7.9.2009 (Core)
JDKopenjdk version "1.8.0_322"
Jmeter5.4.3

场景设计

持续压测10分钟,发布消息配置高斯随机定时器,4-8毫秒。由4台压测机发起请求。分别设置,线程数分别配置1000、2000、3000、4000、5000。

结果

线程数请求数错误数TPS最大响应时间90%响应时间
1000 * 49627201016039.29830.00
2000 * 45797827101709659.73169370.00
3000 * 4628073818073510479.411820951.00
4000 * 433009901978695468.662878391.00
5000 * 41932047547283224.3748624587.00

分析

https://jmeter.apache.org/use...有说明,关于Jmeter线程数的限制。原文摘录如下:

A single JMeter client running on a 2-3 GHz CPU (recent CPU) can handle 1000-2000 threads depending on the type of test.

2-3GHz的CPU,能支持1000-2000线程。而测试结果也映证了这一点。在压测过程中,负载机的内存使用率在70%-75%左右,但是CPU都爆满。


bluesbruce
215 声望17 粉丝