https://issues.apache.org/bugzilla/show_bug.cgi?id=54902
Bug ID: 54902
Summary: Constant throughput timer exceeds the defined rate in
case of 'Connection reset'.
Product: JMeter
Version: 2.9
Hardware: PC
OS: Linux
Status: NEW
Severity: major
Priority: P2
Component: Main
Assignee: [email protected]
Reporter: [email protected]
Classification: Unclassified
DESCRIPTION:
I'm runninn the attached 'test.jmx' file as follows:
--------------
jmeter -p jmeter.properties -Jsummariser.name=summary -Jsummariser.interval=5
-Jsummariser.log=true -Jsummariser.out=false
-Dsun.net.http.allowRestrictedHeaders=true -n -t test.jmx
--------------
The 'jmeter.properties' file is also attached.
The test plan has two thread groups each with one sampler and one constant
throughput timer.
One thread group has the the constant throughput timer set to 300 (5 req/sec).
And runs from t0-t120 (120 secs duration).
The other thread group has the the constant throughput timer set to 1500 (25
req/sec). And runs from t120-t240 (120 secs duration after 120 secs delay).
The test is executed against a server that rate limits all traffic that exceds
5 req/sec. beyond 5 req/sec the requests are droped with a TCP RST.
Looking at Jmeter log summary, it seems that Jmeter did just what it was told
to do (25.0/s Avg) and (5.0/s Avg) -
--------------
2013/04/26 18:36:14 INFO - jmeter.reporters.Summariser: /dos1.php-2 = 3006 in
120.1s = 25.0/s Avg: 9 Min: 0 Max: 20 Err: 969 (32.24%)
2013/04/26 18:36:14 INFO - jmeter.reporters.Summariser: /dos1.php-1 = 608 in
120.8s = 5.0/s Avg: 13 Min: 13 Max: 17 Err: 0 (0.00%)
2013/04/26 18:36:14 INFO - jmeter.engine.StandardJMeterEngine: Test has ended
--------------
However, recording a tcpdump of the traffic that is generated by Jmeter shows
otherwise.
The mentioned tcpdump recorded as follows on the target server: tcpdump -i any
-s0 -w /shared/tmp/my.pcap
The mentioned tcpdump is then filtered out (in wireshark) as follows: ip.src ==
jmeter_machine_ip and ip.dst == server_ip and tcp.flags.push == 1
Looking at the tcpdump shows that -
--------------
The execution of the first thread goes as designed: 5 req/sec are generated by
Jmeter and all traffic goes through.
The execution of the second thread goes bad: ~50(+/-) req/sec are generated by
Jmeter. Instead of the defined 25 req/sec.
--------------
So, there are actually two bugs here - when connections are getting reset:
1) Jmeter exceeds the defined (via 'Constant throughput timer') traffic rate.
2) provides a wrong thread summary in log.
STEPS TO REPRODUCE:
1) Configure 'Constant throughput timer' to 1500 (25 req/sec).
2) Start a tcpdump recording
3) Run the test with an available back-end server (no connection resets) - see
(via tcpdump) that Jmeter sends 25 req/sec.
4) Shut down the back end server
3) Run the test (there are connection resets) - see (via tcpdump) that Jmeter
exceeds the rate of 25 req/sec by far.
4) Look into the Jmeter log - the summary provides data that differs from the
tcpdump data.
SETUP DETAILS:
$ java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.10) (rhel-1.28.1.10.10.el5_8-i386)
OpenJDK Server VM (build 20.0-b11, mixed mode)
$ cat /etc/redhat-release
CentOS release 5.8 (Final)
$ ./jmeter -v
log_file=jmeter.log java.io.FileNotFoundException: jmeter.log (Permission
denied)
[log_file-> System.out]
2013/04/29 12:56:02 INFO - jmeter.util.JMeterUtils: Setting Locale to en_US
2013/04/29 12:56:02 INFO - jmeter.JMeter: Loading user properties from:
/usr/apache-jmeter-2.9/bin/user.properties
2013/04/29 12:56:02 INFO - jmeter.JMeter: Loading system properties from:
/usr/apache-jmeter-2.9/bin/system.properties
2013/04/29 12:56:02 INFO - jmeter.JMeter: Copyright (c) 1998-2013 The Apache
Software Foundation
2013/04/29 12:56:02 INFO - jmeter.JMeter: Version 2.9 r1437961
2013/04/29 12:56:02 INFO - jmeter.JMeter: java.version=1.6.0_22
2013/04/29 12:56:02 INFO - jmeter.JMeter: java.vm.name=OpenJDK Server VM
2013/04/29 12:56:02 INFO - jmeter.JMeter: os.name=Linux
2013/04/29 12:56:02 INFO - jmeter.JMeter: os.arch=i386
2013/04/29 12:56:02 INFO - jmeter.JMeter: os.version=2.6.18-238.el5xen
2013/04/29 12:56:02 INFO - jmeter.JMeter: file.encoding=ANSI_X3.4-1968
2013/04/29 12:56:02 INFO - jmeter.JMeter: Default Locale=English (United
States)
2013/04/29 12:56:02 INFO - jmeter.JMeter: JMeter Locale=English (United
States)
2013/04/29 12:56:02 INFO - jmeter.JMeter: JMeterHome=/usr/apache-jmeter-2.9
2013/04/29 12:56:02 INFO - jmeter.JMeter: user.dir
=/usr/apache-jmeter-2.9/bin
2013/04/29 12:56:02 INFO - jmeter.JMeter: PWD
=/usr/apache-jmeter-2.9/bin
2013/04/29 12:56:02 INFO - jmeter.JMeter: IP: 10.10.10.107 Name:
tlv-sigurko-xen-centos-clean.xxx.com FullName:
tlv-sigurko-xen-centos-clean.xxx.com
Copyright (c) 1998-2013 The Apache Software Foundation
Version 2.9 r1437961
--
You are receiving this mail because:
You are the assignee for the bug.