jmeter JVM与 压测TPS、并发用户数 关系
JMter 的JVM默认值: set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
初始堆大小 Xms Xms1g
最大堆大小 Xmx ,Xmx1g 这2个值建议相等,减少GC
元空间:MaxMetaspaceSize
32位JDK只支持 1g的 Xms ,Xmx,安装的32位 JDK 修改 jmeter.bat的 HEAP Xms ,Xmx 大于1G 在启动时必报错。
64位JDK建议不超过32G 的 Xms ,Xmx。具体可以尝试修改测试,前提是本身的电脑内存64G,可以测试下 修改为32G
一般复杂 尝试设置为 mx2g ,Xmx2g
高负载下 尝试设置为 Xmx8g ,Xmx8g
内存溢出:是指 容量不够大装满后就 溢出了(容量过小),本身就容量过小,不存在消耗服务器内存的说法。
内存泄漏:是指 内存没有回收清理占用了空间,导致空间不足 (某种角度来说不管你多大的内存,都可能会被泄露沾满,消耗服务器内存)。
Jmeter支持并发用户数户 建议最大不超过1000去压测
个人的理解:并发用户数 可以模拟1000个人去抢票,但是抢票系统没有限制你每个人只能买一张票
所以你系统要在1个小时内 卖完100万张票,可以,1000个人去抢,每个人抢1000张
那系统需要每秒钟处理多少笔订单?
100万/(60分钟×60秒)=277.78笔订单/秒 即TPS= 277.78笔/秒。
另外一种理解是:并发用户数 100万个人去抢票,每人只抢1张,这种情况适合秒杀
100万 需要在2分钟内完成抢票支付操作 ,那每秒处理多少笔订单?
100万÷(2分钟×60秒)=8333.33 笔/秒,秒杀的处理能力要求是 之前的30倍。
因此,TPS才是衡量系统处理能力的关键,并发用户数,决定了压测环境的要求。
从本质上来说:1000人并发 与 100人并发在 模拟总的请求数上 没有本质区别。但是对 压测负载机来说 是有影响的,
并发用户数越多,消耗的线程数越多,jmeter的JVM 内存消耗越大。

浙公网安备 33010602011771号