focal (8) ustat-bpfcc.8.gz

Provided by: bpfcc-tools_0.12.0-2_all bug

NAME

       ustat,  javastat,  nodestat, perlstat, phpstat, pythonstat, rubystat, tclstat - Activity stats from high-
       level languages.

SYNOPSIS

       javastat [-C] [-S {cload,excp,gc,method,objnew,thread}] [-r MAXROWS] [-d] [interval [count]]
       nodestat [-C] [-S {cload,excp,gc,method,objnew,thread}] [-r MAXROWS] [-d] [interval [count]]
       perlstat [-C] [-S {cload,excp,gc,method,objnew,thread}] [-r MAXROWS] [-d] [interval [count]]
       phpstat [-C] [-S {cload,excp,gc,method,objnew,thread}] [-r MAXROWS] [-d] [interval [count]]
       pythonstat [-C] [-S {cload,excp,gc,method,objnew,thread}] [-r MAXROWS] [-d] [interval [count]]
       rubystat [-C] [-S {cload,excp,gc,method,objnew,thread}] [-r MAXROWS] [-d] [interval [count]]
       tclstat [-C] [-S {cload,excp,gc,method,objnew,thread}] [-r MAXROWS] [-d] [interval [count]]
       ustat  [-l  {java,node,perl,php,python,ruby,tcl}]  [-C]  [-S  {cload,excp,gc,method,objnew,thread}]   [-r
       MAXROWS] [-d] [interval [count]]

DESCRIPTION

       This  is "top" for high-level language events, such as garbage collections, exceptions, thread creations,
       object allocations, method calls, and more. The events are aggregated for each process and printed  in  a
       top-like  table, which can be sorted by various fields. Not all language runtimes provide the same set of
       details.

       This uses in-kernel eBPF maps to store per process summaries for efficiency.

       This tool relies on USDT probes embedded in many high-level languages, such as  Java,  Node,  Perl,  PHP,
       Python, Ruby, and Tcl. It requires a runtime instrumented with these probes, which in some cases requires
       building from source with a USDT-specific flag, such as "--enable-dtrace" or "--with-dtrace".  For  Java,
       some  probes  are  not  enabled  by  default,  and  can be turned on by running the Java process with the
       "-XX:+ExtendedDTraceProbes" flag. For PHP processes, the environment variable USE_ZEND_DTRACE must be set
       to 1.

       Newly-created  processes  will  only  be  traced  at the next interval. If you run this tool with a short
       interval (say, 1-5 seconds), this should be virtually unnoticeable. For longer intervals, you might  miss
       processes that were started and terminated during the interval window.

       Since this uses BPF, only the root user can use this tool.

REQUIREMENTS

       CONFIG_BPF and bcc.

OPTIONS

       -l {java,node,perl,php,python,ruby,tcl}
              The language to trace. By default, all languages are traced.

       -C     Do not clear the screen between updates.

       -S {cload,excp,gc,method,objnew,thread}
              Sort the output by the specified field.

       -r MAXROWS
              Do not print more than this number of rows.

       -d     Print the resulting BPF program, for debugging purposes.

       interval
              Interval between updates, seconds.

       count  Number of interval summaries.

EXAMPLES

       Summarize activity in high-level languages, 1 second refresh:
              # ustat

       Don't clear the screen, and top 8 rows only:
              # ustat -Cr 8

       5 second summaries, 10 times only:
              # ustat 5 10

FIELDS

       loadavg
              The contents of /proc/loadavg

       PID    Process ID.

       CMDLINE
              Process  command  line  (often the second and following arguments will give you a hint as to which
              application is being run.

       METHOD/s
              Count of method invocations during interval.

       GC/s   Count of garbage collections during interval.

       OBJNEW/s
              Count of objects allocated during interval.

       CLOAD/s
              Count of classes loaded during interval.

       EXC/s  Count of exceptions thrown during interval.

       THR/s  Count of threads created during interval.

OVERHEAD

       When using this tool with high-frequency events, such as method calls, a very significant  slow-down  can
       be  expected.  However,  many of the high-level languages covered by this tool already have a fairly high
       per-method invocation cost, especially when running in interpreted mode. For the lower-frequency  events,
       such  as  garbage  collections or thread creations, the overhead should not be significant. Specifically,
       when probing Java processes and not using the "-XX:+ExtendedDTraceProbes" flag, the most expensive probes
       are not emitted, and the overhead should be acceptable.

SOURCE

       This is from bcc.

              https://github.com/iovisor/bcc

       Also look in the bcc distribution for a companion _example.txt file containing example usage, output, and
       commentary for this tool.

OS

       Linux

STABILITY

       Unstable - in development.

AUTHOR

       Sasha Goldshtein

SEE ALSO

       trace(8), argdist(8), tplist(8)