jitterdebugger1
Measures wake up latencies
Usage
jitterdebugger [OPTIONS]
Overview
jitterdebugger measures wake up latencies. jitterdebugger starts a thread on each CPU which programs a timer and measures the time it takes from the timer expiring until the thread which set the timer runs again.
jitterdebugger default settings will produce a correct meassurement.
The program runs until CTRL-C or SIGTERM is received. The results are printed to STDOUT as JSON encoded string.
Options
-
-h, --help -
Show help text and exit.
-
-v, --verbose -
Show live updates of the measurments
-
-f, --file=FILE -
Write the results into the FILE
-
-c, --command=CMD -
Start workload CMD in background, e.g. -c "while true; do; hackbench; done". The CMD is executed in a full shell, that means VARIABLE expansion works as well. When jitterdebugger terminates itself (because of break value or loops), the background workload is also terminated.
-
-N SERVER:PORT -
Send samples to SERVER:PORT as UDP packets. See also jittersamples --listen.
-
-t, --timeout=N -
Run meassurments for N seconds. N is allowed to be postfix with 'd' (days), 'h' (hours), 'm' (minutes) or 's' seconds.
-
-l, --loops=N -
Run meassurments N times and the terminate jitterdebugger.
-
-b, --break=N -
Run jitterdebugger until the N or greater latency has been observed. jitterdebugger will also stop a running tracer by writing 0 to tracing/tracing_on. Furthermore, the value observed will be written to the trace buffers tracing/trace_marker, e.g "Hit latency 249".
-
-i, --interval=N -
Set the sleep time between each measuring. The default value is 1000us
-
-o, --output=DIR -
Write all samples measured into directory DIR. The file is called samples.raw and it is binary encoded and can be decoded using jittersamples. Additional meta data is stored into DIR.
-
-a, --affinity=CPUSET -
Set the CPU affinity mask. jitterdebugger starts only meassuring threads on CPUSET,. e.g. 0,2,5-7 starts a thread on first, third and 5, 6 and 7 CPU. May also be set in hexadecimal with '0x' prefix
-
-p, --priority=PRI -
Set the priority of the meassuring threads. The default value is 98. Note priority 99 is not available because 99 should only be used for kernel housekeeping tasks.
Examples
# jitterdebugger -v
affinity: 0,1 = 2 [0x3]
T: 0 ( 614) A: 0 C: 13476 Min: 3 Avg: 3.08 Max: 10
T: 1 ( 615) A: 1 C: 13513 Min: 3 Avg: 3.10 Max: 20
^C
{
"cpu": {
"0": {
"histogram": {
"3": 4070,
"4": 269,
"5": 26,
"6": 5,
"7": 1,
"8": 1,
"9": 2,
"10": 1
},
"count": 4375,
"min": 3,
"max": 10,
"avg": 3.08
},
"1": {
"histogram": {
"3": 4002,
"4": 320,
"5": 22,
"6": 4,
"7": 2,
"8": 1,
"10": 2,
"11": 1,
"16": 2,
"20": 1
},
"count": 4357,
"min": 3,
"max": 20,
"avg": 3.10
}
}
}
Releases
4 releases since Debian 10 (Buster); the text changed 1 time.
--command since Debian 11 (Bullseye);
--timeout since Debian 11 (Bullseye);
-N since Debian 11 (Bullseye);
-c since Debian 11 (Bullseye);
-t since Debian 11 (Bullseye).