[
https://issues.apache.org/jira/browse/SOLR-15428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17377647#comment-17377647
]
Mark Robert Miller commented on SOLR-15428:
-------------------------------------------
some notes
* For quick-play, you can use an IDE plugin to run these benchmarks, but
configuration from build.gradle will not be set. I use JMHack for IntelliJ.
* The standard way to run is via gradle. Various std options can be referenced
in the solr/test-framework/build.gradle
{noformat}
./gradlew jmh -Pinclude=CloudIndexing{noformat}
include takes a classname match like the above, or a regex for matching class
name and benchmark method name. You could run all the ByteBuffer benchmarks
with:
{noformat}
./gradlew jmh -Pinclude=.*Buffer.*{noformat}
See the corresponding jmh command line parameters:
[https://openjdk.java.net/projects/code-tools/jmh/]
* Also check out the samples
[https://github.com/openjdk/jmh/tree/master/jmh-samples]
* You can find a similar example of starting up a heavier service with JMH and
testing a method in Java EE 8 High Performance: JMH - the OpenJDK tool.
* When run via gradle, a json results.json file is written to the
solr/test-framework/build/reports/jmh directory.
* I like to visualize these results by loading them into
[https://jmh.morethan.io,|https://jmh.morethan.io,/] which can be done via drag
and drop.
* You can also put them in something like a gist and reference their raw link
to share. For example, here are the results of using 6 threads to index small
or large documents to a 9 shard, 5 node cluster using 1 replica per shard, 3
and 9:
[https://jmh.morethan.io/?source=https://gist.githubusercontent.com/markrmiller/8f4d1c38c0400f45c2b2ce43e8fc0a57/raw/8805ed2fed113a73cf7cf9d3a4cf38c5d92d90dc/result1.json]
* Now let's say I make some great changes. That run was on a laptop running on
battery. For no good reason, lets plug it in and also add a 100ms delay to the
document indexing pipeline. You can make a sharable before and after change
comparison by giving two result links to JMH Visualizer:
https://jmh.morethan.io/?sources=https://gist.githubusercontent.com/markrmiller/8f4d1c38c0400f45c2b2ce43e8fc0a57/raw/8805ed2fed113a73cf7cf9d3a4cf38c5d92d90dc/result1.json,https://gist.githubusercontent.com/markrmiller/20a7cb5ab736a244121666445e943b2d/raw/8d08048211c2bcd9a1e0508f712426873f76e5b7/result2.json
> Integrate the OpenJDK JMH micro benchmark framework for micro benchmarks and
> performance comparisons and investigation.
> -----------------------------------------------------------------------------------------------------------------------
>
> Key: SOLR-15428
> URL: https://issues.apache.org/jira/browse/SOLR-15428
> Project: Solr
> Issue Type: New Feature
> Reporter: Mark Robert Miller
> Priority: Major
> Attachments: bench.patch
>
>
> I’ve spent a fair amount of time over the years on work around integrating
> Lucene’s benchmark framework into Solr and while I’ve used this with
> additional local work off and on, JMH has become somewhat of a standard for
> micro benchmarks on the JVM. I have some work that provides an initial
> integration, allowing for more targeted micro benchmarks as well as more
> integration type benchmarking using JettySolrRunner.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]