austin - Frame stack sampler for CPython
austin [OPTION...] command
[ARG...]
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.
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>
Report bugs to
<https://github.com/P403n1x87/austin/issues>.
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.