jmeter JVM与 压测TPS、并发用户数 关系 - BKY007

jmeter JVM与 压测TPS、并发用户数 关系 - BKY007

JMter 的JVM默认值: set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m

初始堆大小 Xms   Xms1g

最大堆大小 Xmx ,Xmx1g   这2个值建议相等,减少GC

元空间:MaxMetaspaceSize

32位JDK只支持 1g的 Xms  ,Xmx

64位JDK支持4G 的 Xms  ,Xmx。

 

内存溢出:是指 容量不够大装满后就 溢出了(容量过小)

内存泄漏:是指 内存没有回收清理占用了空间,导致空间不足。

 

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 内存消耗越大。