perfsonar / project

The perfSONAR project's primary wiki and issue tracker.
Apache License 2.0
53 stars 10 forks source link

Store and display jitter #1216

Open laeti-tia opened 5 years ago

laeti-tia commented 5 years ago

There is interest from the GÉANT project collaborations to store and display trends of jitter measurements. This is an important metric pour real-time applications (audio, video and some HPC applications).

owping is reporting a jitter calculation with every run of latency measurements. The delay variation is calculated between the 95th percentile and the median (or 50th percentile). owping can also report other percentiles, so maybe we could make the jitter calculation configurable so to match different use cases.

Here are some owping output examples:

Default jitter calculation and output of additional percentiles:

geantadmin@perfsonar:)~$ owping -c 10000 -s 1010 -i 0.001f -a 0.1,50,95,99.9 geantsonar.units.it
Approximately 13.4 seconds until results available

--- owping statistics from [2001:77c:ffff:211:428d:5cff:fed1:af2e]:8919 to [geantsonar.units.it]:9247 ---
SID:    00000002dfe1dd35972f7443ef24c07a
first:  2019-01-10T16:03:18.926
last:   2019-01-10T16:03:28.925
10000 sent, 0 lost (0.000%), 0 duplicates
one-way delay min/median/max = 29.2/29.3/40.5 ms, (err=0.328 ms)
one-way jitter = 0.3 ms (P95-P50)
Percentiles:
    0.1: 29.2 ms
    50.0: 29.3 ms
    95.0: 29.6 ms
    99.9: 35.6 ms
Hops = 14 (consistently)
no reordering

--- owping statistics from [geantsonar.units.it]:9466 to [2001:77c:ffff:211:428d:5cff:fed1:af2e]:9682 ---
SID:    fed1af2edfe1dd359ed89fba6edb621e
first:  2019-01-10T16:03:18.926
last:   2019-01-10T16:03:28.925
10000 sent, 0 lost (0.000%), 0 duplicates
one-way delay min/median/max = 27.4/27.7/57 ms, (err=0.328 ms)
one-way jitter = 0 ms (P95-P50)
Percentiles:
    0.1: 27.4 ms
    50.0: 27.7 ms
    95.0: 27.7 ms
    99.9: 32.4 ms
Hops = 14 (consistently)
no reordering
arlake228 commented 5 years ago

Just so you re aware, when OWAMP results are archived in esmond, the statistics summary calculates many of the common percentiles used in "jitter" measurements for precisely this type of use case. You an see an example at http://lbl-pt1.es.net:8085/esmond/perfsonar/archive/087d7070d7164e25884348ee2a6948fb/histogram-owdelay/statistics/0?time-range=600 or below:

{
        "ts": 1547479931,
        "val": {
            "standard-deviation": 0.03788716801240232,
            "median": 28.34,
            "maximum": 28.38,
            "minimum": 28.21,
            "mode": [
                28.34,
                28.36
            ],
            "percentile-75": 28.35,
            "percentile-25": 28.29,
            "percentile-95": 28.36,
            "variance": 0.0014354375000000014,
            "mean": 28.321749999999998
        }
    }

The calculations happen at the esmond layer. The percentiles are not configurable at the moment but look closer to what you need.