client/benchmark/README.md
client-benchmark-noop-api-plugin with ./gradlew :client:client-benchmark-noop-api-plugin:assemblebin/elasticsearch-plugin install file:///full/path/to/client-benchmark-noop-api-plugin.zip../gradlew -p client/benchmark run --args ' params go here'
Everything in the ' gets sent on the command line to JMH. The leading
inside the 's is important. Without it parameters are sometimes sent to
gradle.
See below for some example invocations.
In general, you should define a few GC-related settings -Xms8192M -Xmx8192M -XX:+UseConcMarkSweepGC -verbose:gc -XX:+PrintGCDetails and keep an eye on GC activity. You can also define -XX:+PrintCompilation to see JIT activity.
Download benchmark data from http://benchmarks.elasticsearch.org.s3.amazonaws.com/corpora/geonames and decompress them.
Example invocation:
wget http://benchmarks.elasticsearch.org.s3.amazonaws.com/corpora/geonames/documents-2.json.bz2
bzip2 -d documents-2.json.bz2
mv documents-2.json client/benchmark/build
gradlew -p client/benchmark run --args ' rest bulk localhost build/documents-2.json geonames type 8647880 5000'
The parameters are all in the 's and are in order:
Example invocation:
./gradlew -p client/benchmark run --args ' rest search localhost geonames {"query":{"match_phrase":{"name":"Sankt Georgen"}}} 500,1000,1100,1200'
The parameters are in order: