3

I am running load test of 24 hours using Jmeter in Azure Kubernetes service. I am using Throughput shaping timer in my jmx file. No listener is added as part of jmx file. My test stopped abruptly after 6 or 7 hrs.

jmeter-server.log file under Jmeter slave pod is giving warning --> WARN k.a.j.t.VariableThroughputTimer: No free threads left in worker pool.

Below is snapshot from jmeter-server.log file. enter image description here

Using Jmeter version - 5.2.1 and Kubernetes version - 1.19.6

I checked, Jmeter pods for master and slaves are continously running(no restart happened) in AKS. I provided 2GB memory to Jmeter slave pod still load test is stopped abruptly. I am using log analytics workspace for logging. Checked ContainerLog table not getting error.

Snapshot of JMX file. Using following elements -> Thread Group, Throughput Controller, Http request Sampler and Throughput Shaping Timer enter image description here

Please suggest for same.

Amit Agrawal
  • 51
  • 2
  • 16
  • Did you try to use instead https://jmeter-plugins.org/wiki/UltimateThreadGroup/ ? – Ori Marko May 05 '21 at 09:26
  • No , Reason is with ultimate threadgroup we need to provide threads count but with throughput shaping timer we can provide RPS. we have to validate how our system behaving on varying RPS. – Amit Agrawal May 05 '21 at 10:25

1 Answers1

2

It looks like your Schedule Feedback Function configuration is wrong in its last parameter

enter image description here

The warning means that the Throughput Shaping Timer attempts to increase the number of threads to reach/maintain the desired concurrency but it doesn't have enough threads in order to do this.

So either increase this Spare threads ration to be closer to 1 if you're using a float value for percentage or increment the absolute value in order to match the number of threads.

Quote from documentation:

Example function call: ${__tstFeedback(tst-name,1,100,10)} , where "tst-name" is name of Throughput Shaping Timer to integrate with, 1 and 100 are starting threads and max allowed threads, 10 is how many spare threads to keep in thread pool. If spare threads parameter is a float value <1, then it is interpreted as a ratio relative to the current estimate of threads needed. If above 1, spare threads is interpreted as an absolute count.

More information: Using JMeter’s Throughput Shaping Timer Plugin

However it doesn't explain the premature termination of the test so ensure that there are no errors in jmeter/k8s logs, one of the possible reasons is that JMeter process is being terminated by OOMKiller

Dmitri T
  • 159,985
  • 5
  • 83
  • 133
  • I am not using Schedule Feedback function. Using Threadgroup then throughput controller then http request sampler and throughput shaping timer. – Amit Agrawal Mar 17 '21 at 13:43