Summary: | __jexl2 doesn't scale with multiple CPU cores | ||
---|---|---|---|
Product: | JMeter - Now in Github | Reporter: | Mikhail Epikhin <epikhinm> |
Component: | Main | Assignee: | JMeter issues mailing list <issues> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | epikhinm, p.mouawad |
Priority: | P2 | ||
Version: | 2.6 | ||
Target Milestone: | --- | ||
Hardware: | All | ||
OS: | All | ||
Attachments: |
adding threadLocal support
1024 threads are blocked on one jexl2 execute method |
Description
Mikhail Epikhin
2014-07-10 14:40:03 UTC
Method "getJexlEngine" should be static. My fault. Hello, Thanks for analysis and contribution. Would it be possible to attach the proof of contention in the Bugzilla ? Using ThreadLocal might impact memory usage negatively (note by the way it is used frequently in JMeter :-) ) even before JDK6. Thanks @ubikloadpack Created attachment 31807 [details]
1024 threads are blocked on one jexl2 execute method
I can't attach test-case for NDA reasons. In test-case i have problems on throughput ~200rps. Applying patch increased throughput to 700rps and system under test are broken under load. For decrease memory consumption we can use method setCache(int size) of JexlEngine. By default Jmeter have cache size 512 per jexl instance. We can decrease than parameter or set value from jmeter configs. Affects version from at least 2.5 up to 2.11 Hello, Thanks for contribution. Commited with addition of ThreadListener interface implementation to cleanup thread local at thread end. If you can test nightly build and give feedback, it would be great. Thanks Date: Sat Jul 12 13:30:51 2014 New Revision: 1609915 URL: http://svn.apache.org/r1609915 Log: Bug 56708 - __jexl2 doesn't scale with multiple CPU cores Bugzilla Id: 56708 Modified: jmeter/trunk/src/functions/org/apache/jmeter/functions/Jexl2Function.java jmeter/trunk/xdocs/changes.xml Thank you, folks!:) This issue has been migrated to GitHub: https://github.com/apache/jmeter/issues/3396 |