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.