romanchyla / solrjmeter

Performance measurements of SOLR
BSD 3-Clause "New" or "Revised" License
28 stars 12 forks source link

tries to spawn non-existent jar CMDRunner.jar #4

Open vvolkman opened 9 years ago

vvolkman commented 9 years ago

I've tried on Linux X86-64 and Windows 7 and neither platform has CMDRunner.jar as part of JMeter. Perhaps it was part of an old build or else I need some extension that I don't know what it is. java -jar /fast/jmeter/apache-jmeter-2.12/lib/ext/CMDRunner.jar --tool Reporter --input-jtl summary_report.data --plugin-type TransactionsPerSecond --generate-png transactions-per-sec.png Error: Unable to access jarfile /fast/jmeter/apache-jmeter-2.12/lib/ext/CMDRunner.jar

romanchyla commented 9 years ago

hmm, interesting, it points out shortcomings in my setup - it was a quick hack, but I take it is not good - i'll look into it...

vvolkman commented 9 years ago

I see now CMDRunner.jar is available from JMeter as part of the Standard Plugins Set (though not standard enough to have included it in the ZIP!) http://jmeter-plugins.org/downloads/all/. Still it would be simple for you to test the existence of CMDRunner.jar and let the user know he should download the plug-in set.

romanchyla commented 9 years ago

agreed

romanchyla commented 9 years ago

OK, so actually the script installs solrmeter, if you pass -j (or -a argument)

I've tested it against solr 4.10 and it worked, here is my invocation:

solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q ./queries/demo/demo.queries -s localhost -p 8983  -a --durationInSecs 60 -R test -t /solr/collection1

but i'm also seeing one error Jmeter error:

java.lang.Throwable: Could not access /var/lib/montysolr/solrjmeter/jmeter/lib/ext/lib
    at kg.apc.cmd.UniversalRunner.buildUpdatedClassPath(UniversalRunner.java:109)
    at kg.apc.cmd.UniversalRunner.<clinit>(UniversalRunner.java:55)

i'm not sure this is critical, the graphs get generated

vvolkman commented 9 years ago

Hi Roman, Yes I had not been using the –a automatic install option before, that is true. Once I ran that and due to our local configs I knew the wget’s would require “--no-proxy” so I hesitated to use that Today I added --no-proxy just to see how it would work. First thing I saw was that it references a non-existent file, the JMeter 2.9 version is no longer posted at http://mirrors.gigenet.com/apache/jmeter/binaries/apache-jmeter-2.9.tgz , you have to change it to 2.12 which I did to get past the “404 Not Found” error

My full commandline is now python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q ./queries/demo/demo.queries -s localhost -p 9999 -a --durationInSecs 60 -R test --e pqis -t /solr/pqis

I agree the UniversalRunner errors seem to be some kind of minor classpath setback that might not matter (see https://github.com/undera/cmdrunner/blob/master/src/kg/apc/cmd/UniversalRunner.java )

Here’s a post on stackoverflow about it as pertains to headless JMeter bug http://stackoverflow.com/questions/18571427/getting-uncaught-exception-while-running-jmeter-tests-from-commandline

It might be solvable by just doing a “mkdir” of solrjmeter/jmeter/lib/ext/lib to stop its whining. Please consider adding that.

Other than that, it appears to run smoothly until this problem and now it is halted shortly after using 0% CPU

INFO 2015-01-08 08:34:01.884 [kg.apc.c](): Saving PNG to /fast/solrjmeter/solrjmeter-master/solrjmeter/test/2015.01.08.08.32.42/demo.queries/response-times-percentiles.png ERROR File "solrjmeter.py", line 1386, in main(sys.argv) File "solrjmeter.py", line 1357, in main generate_graphs(options) File "solrjmeter.py", line 713, in generate_graphs error('We got a zombie!') File "solrjmeter.py", line 66, in error traceback.print_stack() We got a zombie! $ cd /fast/solrjmeter/solrjmeter-master/solrjmeter/test/2015.01.08.08.32.42 $ cd /fast/solrjmeter/solrjmeter-master/solrjmeter/test $ cd /fast/solrjmeter/solrjmeter-master/solrjmeter $ cd /fast/solrjmeter/solrjmeter-master

Here the output halts and nothing more comes out or is done. The only “running” task is the process monitor (“top”) I’m using Doesn’t seem to be anything but the template files in the html dir

From: Roman Chyla [mailto:notifications@github.com] Sent: Wednesday, January 07, 2015 4:29 PM To: romanchyla/solrjmeter Cc: Volkman, Victor Subject: Re: [solrjmeter] tries to spawn non-existent jar CMDRunner.jar (#4)

OK, so actually the script installs solrmeter, if you pass -j (or -a argument)

I've tested it against solr 4.10 and it worked, here is my invocation:

solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q ./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60 -R test -t /solr/collection1

but i'm also seeing one error Jmeter error:

java.lang.Throwable: Could not access /var/lib/montysolr/solrjmeter/jmeter/lib/ext/lib

at kg.apc.cmd.UniversalRunner.buildUpdatedClassPath(UniversalRunner.java:109)

at kg.apc.cmd.UniversalRunner.<clinit>(UniversalRunner.java:55)

i'm not sure this is critical, the graphs get generated

— Reply to this email directly or view it on GitHubhttps://github.com/romanchyla/solrjmeter/issues/4#issuecomment-69095333.

romanchyla commented 9 years ago

Hi Victor, Pls use the python3 branch, it had some of the changes that you suggested previously; i also added the --no-proxy and new timeout

there was a hardcoded limit (not good), but on some machines maybe it takes longer (even if you used 60s); so now you can say -w 200

but i'm seeing errors from jmeter (which I didn't fix yet, will have to look into it tomorrow), one report is complaining

failed: java -jar /var/lib/montysolr/solrjmeter/jmeter/lib/ext/CMDRunner.jar --tool Reporter --input-jtl summary_report.data --plugin-type PageDataExtractorOverTime  --generate-csv page-data-extractor-over-time.csv

i should finally kick myself into writing a functional test, to cover that stuff with certainty