LATENCY(1) General Commands Manual LATENCY(1)
latency – monitors scheduling and interrupt latency
latency [-p priority] [-h] [-m] [-st threshold] [-it threshold]
[-c code_file] [-l log_file] [-R raw_file] [-n kernel]
The latency utility provides scheduling and interrupt-latency statistics.
Due to the kernel tracing facility it uses to operate, the command requires
The arguments are as follows:
When the -c option is specified, it takes a path to a code file
that contains the mappings for the system calls. This option
overrides the default location of the system call code file, which
is found in /usr/share/misc/trace.codes.
-h Display high resolution interrupt latencies and write them to
latencies.csv (truncate existing file) upon exit.
-m Display per-CPU interrupt latency statistics.
Set the interrupt latency threshold, expressed in microseconds. If
the latency exceeds this value, and a log file has been specified,
a record of what occurred during this time is recorded.
Specifies a log file that is written to when either the interrupt
or scheduling latency is exceeded.
By default, latency acts on the default
/System/Library/Kernels/kernel.development. This option allows you
to specify an alternate booted kernel.
Specifies the priority level to observe scheduler latencies for.
The default is realtime ( 97 ). A range of priorities to monitor
can also be provided, for example 31-47 or 0-127
Set the scheduler latency threshold in microseconds. If latency
exceeds this, and a log file has been specified, a record of what
occurred during this time is recorded.
Specifies a raw trace file to use as input.
The data columns displayed are as follows:
SCHEDULER The number of context switches that fall within
the described delay.
INTERRUPTS The number of interrupts that fall within the
The latency utility is also SIGWINCH savvy, so adjusting your window
geometry will change the list of delay values displayed.
latency -p 97 -st 20000 -it 1000 -l /var/tmp/latency.log
The latency utility will watch threads with priority 97 for scheduling
latencies. The threshold for the scheduler is set to 20000 microseconds.
The threshold for interrupts is set to 1000 microseconds. Latencies that
exceed these thresholds will be logged in /var/tmp/latency.log.
fs_usage(1), sc_usage(1), top(1)
macOS March 28, 2000 macOS