jitterdebugger - measures wake up latencies
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.
- -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.
# 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
}
}
}