jmeter发送请求时,加入了Timer后,无法达到后台饱和的TPS

后台:  后台tomcat最大线程数100,处理请求时间100ms。
Jmeter:Sampler-Http请求-Implementation为默认的HTTPClient4。


现象:
1.无Timer
1).jmeter并发10,得到tps为100;后台看到Current thread busy为10;符合预期;
2).jmeter并发50,得到tps为500;后台看到Current thread busy为50;符合预期;
3).jmeter并发100,得到tps为1000;后台看到Current thread busy为100;符合预期;


2.有Timer
1).jmeter并发10,加上Timer为100ms,得到tps为45;后台看到Current thread busy为12;不符合预期;
  从jmeter看,tps=并发数/总的处理时间=10/(100ms+100ms)=50;
  为了达到前台预计的50tps,后台只需有100ms×50个线程服务即可;
  但是观测到后台有12个线程提供服务;
  
2).jmeter并发50,加上Timer为100ms,得到tps为224;后台看到Current thread busy为50;不符合预期;
从jmeter看,tps=并发数/总的处理时间=50/(100ms+100ms)=250;
  为了达到前台预计的250tps,后台只需有100ms×250个线程服务即可;
  但是观测到后台有50个线程提供服务;
  
处理:
将Sampler-Http请求-Implementation改为Java,重新测试:
1.无Timer
与HTTPClient4一致;


2.有Timer
1).jmeter并发10,加上Timer为100ms,得到tps为46;后台看到Current thread busy为10;不符合预期;(猜测是线程数样本少)
2).jmeter并发50,加上Timer为100ms,得到tps为235;后台看到Current thread busy为30;符合预期;
2).jmeter并发100,加上Timer为100ms,得到tps为450;后台看到Current thread busy为54;符合预期;


后续:
看一下Implementation为HttpClient4和java的区别;

你可能感兴趣的:(jmeter发送请求时,加入了Timer后,无法达到后台饱和的TPS)