The Solarflare sysjitter utility measures the extent to which the system introduces jitter and so impacts on the user‐level process. Sysjitter runs a thread on each processor core and when the thread is de‐scheduled from the core it measures for how long. Sysjitter produces summary statistics for each processor core. The sysjitter utility can be downloaded from www.openonload.org
Sysjitter should be run on a system that is idle. When running on a system with cpusets enabled ‐ run sysjitter as root.
Refer to the sysjitter README file for further information on building and running sysjitter.
The following is an example of the output from sysjitter on a single CPU socket server with 4 CPU cores.
./sysjitter ‐‐runtime 10 200 | column ‐t
core_i:          0           1           2           3
threshold(ns):   200         200         200         200
cpu_mhz:         3215        3215        3215        3215
runtime(ns):     9987653973  9987652245  9987652070  9987652027
runtime(s):      9.988       9.988       9.988       9.988
int_n:           10001       10130       10012       10001
int_n_per_sec:   1001.336    1014.252    1002.438    1001.336
int_min(ns):     1333        1247        1299        1446
int_median(ns):  1390        1330        1329        1470
int_mean(ns):    1424        1452        1452        1502
int_90(ns):      1437        1372        1357        1519
int_99(ns):      1619        5046        2392        1688
int_999(ns):     5065        22977       15604       3694
int_9999(ns):    31260       39017       184305      36419
int_99999(ns):   40613       45065       347097      49998
int_max(ns):     40613       45065       347097      49998
int_total(ns):   14244846    14719972    14541991    15031294
int_total(%):    0.143       0.147       0.146       0.150
The table below describes the output fields of the sysjitter utility.
| Field | Description | 
|---|---|
| threshold (ns) | ignore any interrupts shorter than this period | 
| cpu_mhz | CPU speed | 
| runtime (ns) | runtime of sysjitter ‐ nanoseconds | 
| runtime (s) | runtime of sysjitter ‐ seconds | 
| int_n | number of interruptions to the user thread | 
| int_n_per_sec | number of interruptions to the user thread per second | 
| int_min (ns) | minimum time taken away from the user thread due to an interruption | 
| int_median (ns) | median time taken away from the user thread due to an interruption | 
| int_mean (ns) | mean time taken away from the user thread due to an interruption | 
| int_90 (ns) | 90% percentile value | 
| int_99 (ns) | 99% percentile value | 
| int_999 (ns) | 99.9% percentile value | 
| int_9999 (ns) | 99.99% percentile value | 
| int_99999 (ns) | 99.999% percentile value | 
| int_max (ns) | max time taken away from the user thread | 
| int_total (ns) | total time spent not processing the user thread | 
| int_total (%) | int_total (ns) as a percentage of total runtime |