Reference

austin(1)

Frame stack sampler for CPython

NAME

austin - Frame stack sampler for CPython

SYNOPSIS

austin [OPTION...] command [ARG...]

DESCRIPTION

Austin is a frame stack sampler for CPython that is used to extract profiling data out of a running Python process (and all its children, if required) that requires no instrumentation and has practically no impact on the tracee.

-b, --binary

Emit data in the MOJO binary format. See https://github.com/P403n1x87/austin/wiki/The-MOJO-file-format for more details.

-C, --children

Attach to child processes.

-f, --full

Produce the full set of metrics (time +mem -mem).

-g, --gc

Sample the garbage collector state.

-h, --heap=n_mb

Maximum heap size to allocate to increase sampling accuracy, in MB (default is 0).

-i, --interval=n_us

Sampling interval in microseconds (default is 100). Accepted units: s, ms, us.

-m, --memory

Profile memory usage.

-o, --output=FILE

Specify an output file for the collected samples.

-p, --pid=PID

Attach to the process with the given PID.

-P, --pipe

Pipe mode. Use when piping Austin output.

-s, --sleepless

Suppress idle samples to estimate CPU time.

-t, --timeout=n_ms

Start up wait time in milliseconds (default is 100). Accepted units: s, ms.

-w, --where=PID

Dump the stacks of all the threads within the process with the given PID.

-x, --exposure=n_sec

Sample for n_sec seconds only.

-?, --help

Give this help list

--usage

Give a short usage message

-V, --version

Print program version

Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options.

EXAMPLES

Profile wall time of a Python script

$ austin python3 myscript.py

Profile CPU time of an executable Python script

$ austin -s ./myscript.py

Profile a Python application

$ austin uwsgi --http :9090 --wsgi-file foobar.py

Profile child processes

$ austin -C uwsgi --http :9090 --wsgi-file foobar.py

Attach to a running Python process

# austin -p <pid>

Attach to a process and its children

# austin -Cp <pid>

Where is a Python process at?

# austin -w <pid>

Set the sampling interval

# austin -i 10ms -p <pid>

Save collected on-CPU samples to file

$ austin -so /path/to/file.austin ./myscript.py

Sample for 5 seconds only

# austin -x 5 -p <pid>

REPORTING BUGS

Report bugs to <https://github.com/P403n1x87/austin/issues>.

SEE ALSO

The full documentation for austin is maintained as a Texinfo manual. If the info and austin programs are properly installed at your site, the command

info austin

should give you access to the complete manual.

History

--binary since Debian 13 (Trixie); --exposure since Debian 13 (Trixie); --gc since Debian 13 (Trixie); --heap since Debian 13 (Trixie); --pipe since Debian 13 (Trixie); --where since Debian 13 (Trixie); -P since Debian 13 (Trixie); -b since Debian 13 (Trixie); -g since Debian 13 (Trixie); -h since Debian 13 (Trixie); -w since Debian 13 (Trixie); -x since Debian 13 (Trixie).

--alt-format until Debian 12 (Bookworm); --exclude-empty until Debian 12 (Bookworm); -a until Debian 12 (Bookworm); -e until Debian 12 (Bookworm).