RFR: JMC-5327: Using HdrHistograms to visualize latencies
Elliott Baron
ebaron at redhat.com
Wed May 1 17:00:27 UTC 2019
Hi,
Please review this patch which adds additional IO duration statistics
using HdrHistogram [1]. One of the nice features of HdrHistogram is its
ability to generate percentile distributions of data, while using
limited space. For latency measurements, this can be a useful tool to
draw attention to outliers where latency is particularly bad.
These statistics are displayed in a new table within the File and Socket
IO pages. This table shows the read/write duration at predetermined
percentiles (0, 90, 99, 99.9, 99.99, 99.999, and 100), and the total
number of items <= that duration. I originally planned to show this
information in a chart, but ran into difficulties expressing a
non-linear percentile axis with JMC's charting API. After discussions
with Marcus, I opted to display this information using a table alongside
the existing chart.
I included some UI tests that verify the values in each of these
HdrHistogram tables using a new (gzipped) JFR recording. I tried to keep
this recording as small as possible, while still getting somewhat
interesting results in the tables.
HdrHistogram itself is already bundled on Maven Central, I simply added
it to our third-party p2 repository and target platforms. The included
translations for the word "percentile" are the result of consulting
online dictionaries, there may be better terms.
Bug: https://bugs.openjdk.java.net/browse/JMC-5327
Webrev: http://cr.openjdk.java.net/~aptmac/JMC-5327/webrev.00/
Preview: https://imgur.com/a/MlA2C7y
Thanks,
Elliott
[1] http://hdrhistogram.org/
More information about the jmc-dev
mailing list