You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
3.0 KiB
99 lines
3.0 KiB
.TH ugc 8 "2018-10-09" "USER COMMANDS"
|
|
.SH NAME
|
|
ugc, javagc, nodegc, pythongc, rubygc \- Trace garbage collection events in
|
|
high-level languages.
|
|
.SH SYNOPSIS
|
|
.B javagc [-h] [-v] [-m] [-M MINIMUM] [-F FILTER] pid
|
|
.br
|
|
.B nodegc [-h] [-v] [-m] [-M MINIMUM] [-F FILTER] pid
|
|
.br
|
|
.B pythongc [-h] [-v] [-m] [-M MINIMUM] [-F FILTER] pid
|
|
.br
|
|
.B rubygc [-h] [-v] [-m] [-M MINIMUM] [-F FILTER] pid
|
|
.br
|
|
.B ugc [-h] [-v] [-m] [-M MINIMUM] [-F FILTER] [-l {java,node,python,ruby}] pid
|
|
.SH DESCRIPTION
|
|
This traces garbage collection events as they occur, including their duration
|
|
and any additional information (such as generation collected or type of GC)
|
|
provided by the respective language's runtime.
|
|
|
|
This tool relies on USDT probes embedded in many high-level languages, such as
|
|
Java, Node, Python, and Ruby. 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".
|
|
|
|
Since this uses BPF, only the root user can use this tool.
|
|
.SH REQUIREMENTS
|
|
CONFIG_BPF and bcc.
|
|
.SH OPTIONS
|
|
.TP
|
|
\-v
|
|
Print the resulting BPF program, for debugging purposes.
|
|
.TP
|
|
\-m
|
|
Print times in milliseconds. The default is microseconds.
|
|
.TP
|
|
\-M MINIMUM
|
|
Display only collections that are longer than this threshold. The value is
|
|
given in milliseconds. The default is to display all collections.
|
|
.TP
|
|
\-F FILTER
|
|
Display only collections whose textual description matches (contains) this
|
|
string. The default is to display all collections. Note that the filtering here
|
|
is performed in user-space, and not as part of the BPF program. This means that
|
|
if you have thousands of collection events, specifying this filter will not
|
|
reduce the amount of data that has to be transferred from the BPF program to
|
|
the user-space script.
|
|
.TP
|
|
{java,node,python,ruby}
|
|
The language to trace.
|
|
.TP
|
|
pid
|
|
The process id to trace.
|
|
.SH EXAMPLES
|
|
.TP
|
|
Trace garbage collections in a specific Node process:
|
|
#
|
|
.B ugc node 148
|
|
.TP
|
|
Trace garbage collections in a specific Java process, and print GC times in
|
|
milliseconds:
|
|
#
|
|
.B ugc -m java 6004
|
|
.TP
|
|
Trace garbage collections in a specific Java process, and display them only if
|
|
they are longer than 10ms and have the string "Tenured" in their detailed
|
|
description:
|
|
#
|
|
.B ugc -M 10 -F Tenured java 6004
|
|
.SH FIELDS
|
|
.TP
|
|
START
|
|
The start time of the GC, in seconds from the beginning of the trace.
|
|
.TP
|
|
TIME
|
|
The duration of the garbage collection event.
|
|
.TP
|
|
DESCRIPTION
|
|
The runtime-provided description of this garbage collection event.
|
|
.SH OVERHEAD
|
|
Garbage collection events, even if frequent, should not produce a considerable
|
|
overhead when traced because they are still not very common. Even hundreds of
|
|
GCs per second (which is a very high rate) will still produce a fairly
|
|
negligible overhead.
|
|
.SH SOURCE
|
|
This is from bcc.
|
|
.IP
|
|
https://github.com/iovisor/bcc
|
|
.PP
|
|
Also look in the bcc distribution for a companion _example.txt file containing
|
|
example usage, output, and commentary for this tool.
|
|
.SH OS
|
|
Linux
|
|
.SH STABILITY
|
|
Unstable - in development.
|
|
.SH AUTHOR
|
|
Sasha Goldshtein
|
|
.SH SEE ALSO
|
|
trace(8), ustat(8), uobjnew(8)
|