AUSTIN(1)

πŸ“¦
version 3.7.0 Β· 3 versions
, in ubuntu questing

✨ AUSTIN(1) β€” the manual page bestie πŸ’…

okay so you found the austin man page and honestly? iconic. it's a User Command, and we're about to go through the whole thing together, no skips, no skimming, because every single flag matters. let's get into it 🫢


🌸 NAME 🌸

austin β€” Frame stack sampler for CPython ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

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

πŸ’– DESCRIPTION πŸ’–

okay so here's the tea: Austin is a frame stack sampler for CPython. what does that mean? it means it pulls profiling data out of a running Python process β€” and all its children, if you want that β€” and the way it does it is chef's kiss: no instrumentation required, and it has practically no impact on the tracee. literally the politest profiler you'll ever meet. it's giving "shows up to the party, takes notes, doesn't touch anything" πŸ‘‘

so here's every option, one by one, because we don't gatekeep:

  • -b, --binary β€” emit data in the MOJO binary format. for more deets, see https://github.com/P403n1x87/austin/wiki/The-MOJO-file-format πŸ’Ύ
  • -C, --children β€” attach to child processes too. the whole fam gets profiled 🍼
  • -f, --full β€” produce the full set of metrics: time +mem -mem. the deluxe package bestie ✨
  • -g, --gc β€” sample the garbage collector state. yes, we're watching the gc do its lil thing πŸ—‘οΈ
  • -h, --heap=n_mb β€” maximum heap size to allocate, in MB, to increase sampling accuracy. 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 this when you're piping Austin's output 🚰
  • -s, --sleepless β€” suppress idle samples so you can estimate CPU time. no naps, only vibes 😀
  • -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. like "where u at" but for threads πŸ“
  • -x, --exposure=n_sec β€” sample for n_sec seconds only, then dip πŸƒβ™€οΈ
  • -?, --help β€” give this help list πŸ™‹β™€οΈ
  • --usage β€” give a short usage message πŸ“
  • -V, --version β€” print program version πŸ”–
ngl this next bit is important: mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options. so like, don't think you can sneak around it fr fr πŸ‘€

πŸŽ€ EXAMPLES πŸŽ€

the part where it all clicks. let's go πŸ’«

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 πŸ™ˆ

found a bug? don't be shy, report it to https://github.com/P403n1x87/austin/issues β€” they're not gonna bite, and honestly fixing bugs is a group effort bestie πŸ›πŸ«Ά


πŸ’œ 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, then this command:

info austin

should give you access to the complete manual. periodt πŸ“–βœ¨


and that's the whole page, no notes. this was austin version 3.7.0, dated September 2025 β€” she's fresh, she's thriving, she's a User Commands girlie πŸ’…πŸŒΈ bye bestie, go profile something πŸ¦‹

πŸ“¦ where this page comes from