前言
为了练习应用 Jmeter
压测MQTT
,在内网环境搭建了EMQ v4.4
。整个环境应用了 6 台 PC,CPU 是雷同型号,EMQ 服务器和控制机采纳 8G 内存,负载机 4G 内存。EMQ 服务器和负载机均为 CentOS7.9。
负载机环境
指标 | 数值 |
---|---|
CPU | Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz |
内核 | 4 核 8 线程 |
内存 | 4GB |
零碎 | CentOS Linux release 7.9.2009 (Core) |
JDK | openjdk version “1.8.0_322” |
Jmeter | 5.4.3 |
场景设计
继续压测 10 分钟,公布音讯配置 高斯随机定时器,4- 8 毫秒。由 4 台压测机发动申请。别离设置,线程数别离配置 1000、2000、3000、4000、5000。
后果
线程数 | 申请数 | 谬误数 | TPS | 最大响应工夫 | 90% 响应工夫 |
---|---|---|---|---|---|
1000 * 4 | 9627201 | 0 | 16039.29 | 83 | 0.00 |
2000 * 4 | 5797827 | 10170 | 9659.73 | 16937 | 0.00 |
3000 * 4 | 6280738 | 180735 | 10479.41 | 182095 | 1.00 |
4000 * 4 | 3300990 | 197869 | 5468.66 | 287839 | 1.00 |
5000 * 4 | 1932047 | 54728 | 3224.37 | 486245 | 87.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 都爆满。