JITTERDEBUGGER(1)
JITTERDEBUGGER(1) π
okay bestie, buckle up, we're doing section 1 of the General Commands Manual today and it's jitterdebugger β the tool that measures wake up latencies. yes it's giving "why is my box stuttering" energy, and yes we're obsessed. π¦
β¨ NAME β¨
jitterdebugger β measures wake up latencies. that's it, that's the whole name section, she's concise. π
β¨ SYNOPSIS β¨
jitterdebugger [OPTIONS]
β¨ DESCRIPTION β¨
so here's the vibe: jitterdebugger measures wake up latencies. what it actually does is start a thread on every single CPU, and each one programs a timer and then measures the time it takes from the timer expiring until the thread that set the timer runs again. it's literally a stopwatch but for the scheduler. β±οΈβ¨
and like, good news: jitterdebugger's default settings will produce a correct measurement. no cap. you can just run it and trust the numbers. π«Ά
the program runs until it gets a CTRL-C or a SIGTERM. then the results get printed to STDOUT as a JSON encoded string. slay. π
β¨ OPTIONS β¨
-h,--helpβ shows the help text and dips. classic. π-v,--verboseβ shows live updates of the measurements. main character mode, you get to watch the numbers move. π-f,--file=FILEβ writes the results into the FILE. take it to go. π-c,--command=CMDβ starts a workload CMD in the background, e.g.-c "while true; do; hackbench; done". and because CMD is executed in a full shell, VARIABLE expansion works as well β so yes, your env vars will pop off. and whenjitterdebuggerterminates itself (because of a break value or loops), the background workload gets terminated too. no orphan processes left hanging, we love a clean exit. β¨-N SERVER:PORTβ sends samples to SERVER:PORT as UDP packets. see alsojittersamples --listen. it's giving long distance relationship but make it telemetry. π‘-t,--timeout=Nβ runs measurements for N seconds. and N is allowed to be postfixed withd(days),h(hours),m(minutes) ors(seconds). so-t 2his a whole vibe. πΈ-l,--loops=Nβ runs measurements N times and then terminatesjitterdebugger. a fixed number of rounds, then bedtime. π΄-b,--break=Nβ runsjitterdebuggeruntil the N or greater latency has been observed. and bestie it does more than just stop: it will also stop a running tracer by writing0totracing/tracing_on. furthermore, the value observed will be written to the trace bufferstracing/trace_marker, e.g."Hit latency 249". iconic forensic behaviour. π₯-i,--interval=Nβ sets the sleep time between each measuring. the default value is1000us. π€-o,--output=DIRβ writes all samples measured into directory DIR. the file is calledsamples.raw, it's binary encoded, and it can be decoded usingjittersamples. additional meta data is stored into DIR too. β¨-a,--affinity=CPUSETβ sets the CPU affinity mask.jitterdebuggerstarts measuring threads only on CPUSET, e.g.0,2,5-7starts a thread on the first, third and 5, 6 and 7 CPU. may also be set in hexadecimal with a0xprefix. pick your faves. π―-p,--priority=PRIβ sets the priority of the measuring threads. the default value is98. > β οΈ note: priority99is not available because99should only be used for kernel housekeeping tasks. don't touch it, it's not yours. π
β¨ EXAMPLES β¨
here's the moment you've been waiting for, the demo. π
# 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
}
}
}
see how it prints live with -v, you hit ^C, and then it dumps the whole JSON at you? that's the whole arc. beautiful. ππ
β¨ SEE ALSO β¨
jittersamples(1) jitterplot(1) β the rest of the friend group. go say hi. π«Ά
okay and for the lil sign-off: this page lives in the General Commands Manual (that's section 1, iykyk), and the footer just says JITTERDEBUGGER(1) right back at you β so there's no date or version to spill, just the name, twice, because she's consistent. periodt. πβ¨π
π¦ where this page comes from
- debian bookworm: jitterdebugger 0.3.1+git20200117.b90ff3a-4 Β· MIT
- debian trixie: jitterdebugger 0.3.1+git20200117.b90ff3a-5 Β· MIT
- ubuntu jammy: jitterdebugger 0.3.1+git20200117.b90ff3a-3 Β· MIT
- ubuntu noble: jitterdebugger 0.3.1+git20200117.b90ff3a-5 Β· MIT
- ubuntu questing: jitterdebugger 0.3.1+git20200117.b90ff3a-5
- ubuntu resolute: jitterdebugger 0.3.1+git20200117.b90ff3a-5build1 Β· MIT
- ubuntu stonking: jitterdebugger 0.3.1+git20200117.b90ff3a-5build1 Β· MIT
- π the page's license: MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms