AUSTIN(1)

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.