| .\" Copyright (c) 1994, 2019, Oracle and/or its affiliates. All rights reserved. |
| .\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| .\" |
| .\" This code is free software; you can redistribute it and/or modify it |
| .\" under the terms of the GNU General Public License version 2 only, as |
| .\" published by the Free Software Foundation. |
| .\" |
| .\" This code is distributed in the hope that it will be useful, but WITHOUT |
| .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| .\" version 2 for more details (a copy is included in the LICENSE file that |
| .\" accompanied this code). |
| .\" |
| .\" You should have received a copy of the GNU General Public License version |
| .\" 2 along with this work; if not, write to the Free Software Foundation, |
| .\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| .\" |
| .\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
| .\" or visit www.oracle.com if you need additional information or have any |
| .\" questions. |
| .\" |
| .\" Automatically generated by Pandoc 2.3.1 |
| .\" |
| .TH "JCMD" "1" "2020" "JDK 14" "JDK Commands" |
| .hy |
| .SH NAME |
| .PP |
| jcmd \- send diagnostic command requests to a running Java Virtual |
| Machine (JVM) |
| .SH SYNOPSIS |
| .PP |
| \f[CB]jcmd\f[R] [\f[I]pid\f[R] | \f[I]main\-class\f[R]] \f[I]command\f[R]... |
| | \f[CB]PerfCounter.print\f[R] | \f[CB]\-f\f[R] \f[I]filename\f[R] |
| .PP |
| \f[CB]jcmd\f[R] [\f[CB]\-l\f[R]] |
| .PP |
| \f[CB]jcmd\f[R] \f[CB]\-h\f[R] |
| .TP |
| .B \f[I]pid\f[R] |
| When used, the \f[CB]jcmd\f[R] utility sends the diagnostic command |
| request to the process ID for the Java process. |
| .RS |
| .RE |
| .TP |
| .B \f[I]main\-class\f[R] |
| When used, the \f[CB]jcmd\f[R] utility sends the diagnostic command |
| request to all Java processes with the specified name of the main class. |
| .RS |
| .RE |
| .TP |
| .B \f[I]command\f[R] |
| The \f[CB]command\f[R] must be a valid \f[CB]jcmd\f[R] command for the |
| selected JVM. |
| The list of available commands for \f[CB]jcmd\f[R] is obtained by running |
| the \f[CB]help\f[R] command (\f[CB]jcmd\f[R] \f[I]pid\f[R] \f[CB]help\f[R]) |
| where \f[I]pid\f[R] is the process ID for the running Java process. |
| If the \f[I]pid\f[R] is \f[CB]0\f[R], commands will be sent to all Java |
| processes. |
| The main class argument will be used to match, either partially or |
| fully, the class used to start Java. |
| If no options are given, it lists the running Java process identifiers |
| with the main class and command\-line arguments that were used to launch |
| the process (the same as using \f[CB]\-l\f[R]). |
| .RS |
| .RE |
| .TP |
| .B \f[CB]Perfcounter.print\f[R] |
| Prints the performance counters exposed by the specified Java process. |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-f\f[R] \f[I]filename\f[R] |
| Reads and executes commands from a specified file, \f[I]filename\f[R]. |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-l\f[R] |
| Displays the list of Java Virtual Machine process identifiers that are |
| not running in a separate docker process along with the main class and |
| command\-line arguments that were used to launch the process. |
| If the JVM is in a docker process, you must use tools such as |
| \f[CB]ps\f[R] to look up the PID. |
| .RS |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| Using \f[CB]jcmd\f[R] without arguments is the same as using |
| \f[CB]jcmd\ \-l\f[R]. |
| .RE |
| .TP |
| .B \f[CB]\-h\f[R] |
| Displays the \f[CB]jcmd\f[R] utility\[aq]s command\-line help. |
| .RS |
| .RE |
| .SH DESCRIPTION |
| .PP |
| The \f[CB]jcmd\f[R] utility is used to send diagnostic command requests to |
| the JVM. |
| It must be used on the same machine on which the JVM is running, and |
| have the same effective user and group identifiers that were used to |
| launch the JVM. |
| Each diagnostic command has its own set of arguments. |
| To display the description, syntax, and a list of available arguments |
| for a diagnostic command, use the name of the command as the argument. |
| For example: |
| .RS |
| .PP |
| \f[CB]jcmd\f[R] \f[I]pid\f[R] \f[CB]help\f[R] \f[I]command\f[R] |
| .RE |
| .PP |
| If arguments contain spaces, then you must surround them with single or |
| double quotation marks (\f[CB]\[aq]\f[R] or \f[CB]"\f[R]). |
| In addition, you must escape single or double quotation marks with a |
| backslash (\f[CB]\\\f[R]) to prevent the operating system shell from |
| processing quotation marks. |
| Alternatively, you can surround these arguments with single quotation |
| marks and then with double quotation marks (or with double quotation |
| marks and then with single quotation marks). |
| .PP |
| If you specify the process identifier (\f[I]pid\f[R]) or the main class |
| (\f[I]main\-class\f[R]) as the first argument, then the \f[CB]jcmd\f[R] |
| utility sends the diagnostic command request to the Java process with |
| the specified identifier or to all Java processes with the specified |
| name of the main class. |
| You can also send the diagnostic command request to all available Java |
| processes by specifying \f[CB]0\f[R] as the process identifier. |
| .SH COMMANDS FOR JCMD |
| .PP |
| The \f[I]command\f[R] must be a valid \f[CB]jcmd\f[R] diagnostic command |
| for the selected JVM. |
| The list of available commands for \f[CB]jcmd\f[R] is obtained by running |
| the \f[CB]help\f[R] command (\f[CB]jcmd\f[R] \f[I]pid\f[R] \f[CB]help\f[R]) |
| where \f[I]pid\f[R] is the process ID for a running Java process. |
| If the \f[I]pid\f[R] is \f[CB]0\f[R], commands will be sent to all Java |
| processes. |
| The main class argument will be used to match, either partially or |
| fully, the class used to start Java. |
| If no options are given, it lists the running Java process identifiers |
| that are not in separate docker processes along with the main class and |
| command\-line arguments that were used to launch the process (the same |
| as using \f[CB]\-l\f[R]). |
| .PP |
| The following commands are available: |
| .TP |
| .B \f[CB]help\f[R] [\f[I]options\f[R]] [\f[I]arguments\f[R]] |
| For more information about a specific command. |
| .RS |
| .PP |
| \f[I]arguments\f[R]: |
| .IP \[bu] 2 |
| \f[I]command name\f[R]: The name of the command for which we want help |
| (STRING, no default value) |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The following \f[I]options\f[R] must be specified using either |
| \f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]\-all\f[R]: (Optional) Show help for all commands (BOOLEAN, false) . |
| .RE |
| .TP |
| .B \f[CB]Compiler.codecache\f[R] |
| Prints code cache layout and bounds. |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .RE |
| .TP |
| .B \f[CB]Compiler.codelist\f[R] |
| Prints all compiled methods in code cache that are alive. |
| .RS |
| .PP |
| Impact: Medium |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .RE |
| .TP |
| .B \f[CB]Compiler.queue\f[R] |
| Prints methods queued for compilation. |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .RE |
| .TP |
| .B \f[CB]Compiler.directives_add\ *filename*\ *arguments*\f[R] |
| Adds compiler directives from a file. |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .PP |
| \f[I]arguments\f[R]: |
| .PP |
| \f[I]filename\f[R]: The name of the directives file (STRING, no default |
| value) |
| .RE |
| .TP |
| .B \f[CB]Compiler.directives_clear\f[R] |
| Remove all compiler directives. |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .RE |
| .TP |
| .B \f[CB]Compiler.directives_print\f[R] |
| Prints all active compiler directives. |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .RE |
| .TP |
| .B \f[CB]Compiler.directives_remove\f[R] |
| Remove latest added compiler directive. |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .RE |
| .TP |
| .B \f[CB]GC.class_histogram\f[R] [\f[I]options\f[R]] |
| Provides statistics about the Java heap usage. |
| .RS |
| .PP |
| Impact: High \-\-\- depends on Java heap size and content. |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or |
| \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]\-all\f[R]: (Optional) Inspects all objects, including unreachable |
| objects (BOOLEAN, false) |
| .RE |
| .TP |
| .B \f[CB]GC.class_stats\f[R] [\f[I]options\f[R]] [\f[I]arguments\f[R]] |
| (Deprecated) Provide statistics about Java class meta data. |
| .RS |
| .PP |
| Impact: High \-\-\- depends on Java heap size and content. |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or |
| \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]\-all\f[R]: (Optional) Shows all columns (BOOLEAN, false) |
| .IP \[bu] 2 |
| \f[CB]\-csv\f[R]: (Optional) Prints in CSV (comma\-separated values) |
| format for spreadsheets (BOOLEAN, false) |
| .IP \[bu] 2 |
| \f[CB]\-help\f[R]: (Optional) Shows the meaning of all the columns |
| (BOOLEAN, false) |
| .PP |
| \f[I]arguments\f[R]: |
| .IP \[bu] 2 |
| \f[I]columns\f[R]: (Optional) Comma\-separated list of all the columns to |
| be shown. |
| If not specified, the following columns are shown: |
| .RS 2 |
| .IP \[bu] 2 |
| InstBytes |
| .IP \[bu] 2 |
| KlassBytes |
| .IP \[bu] 2 |
| CpAll |
| .IP \[bu] 2 |
| annotations |
| .IP \[bu] 2 |
| MethodCount |
| .IP \[bu] 2 |
| Bytecodes |
| .IP \[bu] 2 |
| MethodAll |
| .IP \[bu] 2 |
| ROAll |
| .IP \[bu] 2 |
| RWAll |
| .IP \[bu] 2 |
| Total |
| .PP |
| (STRING, no default value) |
| .RE |
| .RE |
| .TP |
| .B \f[CB]GC.finalizer_info\f[R] |
| Provides information about the Java finalization queue. |
| .RS |
| .PP |
| Impact: Medium |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .RE |
| .TP |
| .B \f[CB]GC.heap_dump\f[R] [\f[I]options\f[R]] [\f[I]arguments\f[R]] |
| Generates a HPROF format dump of the Java heap. |
| .RS |
| .PP |
| Impact: High \-\-\- depends on the Java heap size and content. |
| Request a full GC unless the \f[CB]\-all\f[R] option is specified. |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The following \f[I]options\f[R] must be specified using either |
| \f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]\-all\f[R]: (Optional) Dump all objects, including unreachable |
| objects (BOOLEAN, false) |
| .PP |
| \f[I]arguments\f[R]: |
| .IP \[bu] 2 |
| \f[I]filename\f[R]: The name of the dump file (STRING, no default value) |
| .RE |
| .TP |
| .B \f[CB]GC.heap_info\f[R] |
| Provides generic Java heap information. |
| .RS |
| .PP |
| Impact: Medium |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .RE |
| .TP |
| .B \f[CB]GC.run\f[R] |
| Calls \f[CB]java.lang.System.gc()\f[R]. |
| .RS |
| .PP |
| Impact: Medium \-\-\- depends on the Java heap size and content. |
| .RE |
| .TP |
| .B \f[CB]GC.run_finalization\f[R] |
| Calls \f[CB]java.lang.System.runFinalization()\f[R]. |
| .RS |
| .PP |
| Impact: Medium \-\-\- depends on the Java content. |
| .RE |
| .TP |
| .B \f[CB]JFR.check\f[R] [\f[I]options\f[R]] |
| Show information about a running flight recording |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or |
| \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| If no parameters are entered, information for all active recordings is |
| shown. |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]name\f[R]: (Optional) Name of the flight recording. |
| (STRING, no default value) |
| .IP \[bu] 2 |
| \f[CB]verbose\f[R]: (Optional) Flag for printing the event settings for |
| the recording (BOOLEAN, false) |
| .RE |
| .TP |
| .B \f[CB]JFR.configure\f[R] [\f[I]options\f[R]] |
| Set the parameters for a flight recording |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or |
| \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| If no parameters are entered, the current settings are displayed. |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]globalbuffercount\f[R]: (Optional) Number of global buffers. |
| This option is a legacy option: change the \f[CB]memorysize\f[R] parameter |
| to alter the number of global buffers. |
| This value cannot be changed once JFR has been initalized. |
| (STRING, default determined by the value for \f[CB]memorysize\f[R]) |
| .IP \[bu] 2 |
| \f[CB]globalbuffersize\f[R]: (Optional) Size of the global buffers, in |
| bytes. |
| This option is a legacy option: change the \f[CB]memorysize\f[R] parameter |
| to alter the size of the global buffers. |
| This value cannot be changed once JFR has been initalized. |
| (STRING, default determined by the value for \f[CB]memorysize\f[R]) |
| .IP \[bu] 2 |
| \f[CB]maxchunksize\f[R]: (Optional) Maximum size of an individual data |
| chunk in bytes if one of the following suffixes is not used: \[aq]m\[aq] |
| or \[aq]M\[aq] for megabytes OR \[aq]g\[aq] or \[aq]G\[aq] for |
| gigabytes. |
| This value cannot be changed once JFR has been initialized. |
| (STRING, 12M) |
| .IP \[bu] 2 |
| \f[CB]memorysize\f[R]: (Optional) Overall memory size, in bytes if one of |
| the following suffixes is not used: \[aq]m\[aq] or \[aq]M\[aq] for |
| megabytes OR \[aq]g\[aq] or \[aq]G\[aq] for gigabytes. |
| This value cannot be changed once JFR has been initialized. |
| (STRING, 10M) |
| .IP \[bu] 2 |
| \f[CB]repositorypath\f[R]: (Optional) Path to the location where |
| recordings are stored until they are written to a permanent file. |
| (STRING, The default location is the temporary directory for the |
| operating system. |
| On Linux operating systems, the temporary directory is \f[CB]/tmp\f[R]. |
| On Windwows, the temporary directory is specified by the \f[CB]TMP\f[R] |
| environment variable.) |
| .IP \[bu] 2 |
| \f[CB]stackdepth\f[R]: (Optional) Stack depth for stack traces. |
| Setting this value greater than the default of 64 may cause a |
| performance degradation. |
| This value cannot be changed once JFR has been initialized. |
| (LONG, 64) |
| .IP \[bu] 2 |
| \f[CB]thread_buffer_size\f[R]: (Optional) Local buffer size for each |
| thread in bytes if one of the following suffixes is not used: |
| \[aq]k\[aq] or \[aq]K\[aq] for kilobytes or \[aq]m\[aq] or \[aq]M\[aq] |
| for megabytes. |
| Overriding this parameter could reduce performance and is not |
| recommended. |
| This value cannot be changed once JFR has been initialized. |
| (STRING, 8k) |
| .IP \[bu] 2 |
| \f[CB]samplethreads\f[R]: (Optional) Flag for activating thread sampling. |
| (BOOLEAN, true) |
| .RE |
| .TP |
| .B \f[CB]JFR.dump\f[R] [\f[I]options\f[R]] |
| Write data to a file while a flight recording is running |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or |
| \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| No options are required. |
| The recording continues to run after the data is written. |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]begin\f[R]: (Optional) Specify the time from which recording data |
| will be included in the dump file. |
| The format is specified as local time. |
| (STRING, no default value) |
| .IP \[bu] 2 |
| \f[CB]end\f[R]: (Optional) Specify the time to which recording data will |
| be included in the dump file. |
| The format is specified as local time. |
| (STRING, no default value) |
| .RS 2 |
| .PP |
| \f[B]Note:\f[R] For both \f[CB]begin\f[R] and \f[CB]end\f[R], the time must |
| be in a format that can be read by java.time.LocalTime::parse(STRING), |
| java.time.LocalDateTime::parse(STRING) or |
| java.time.Instant::parse(STRING). |
| For example, "13:20:15", "2020\-03\-17T09:00:00" or |
| "2020\-03\-17T09:00:00Z". |
| .PP |
| \f[B]Note:\f[R] \f[CB]begin\f[R] and \f[CB]end\f[R] times correspond to the |
| timestamps found within the recorded information in the flight recording |
| data. |
| .PP |
| Another option is to use a time relative to the current time that is |
| specified by a negative integer followed by "s", "m" or "h". |
| For example, "\-12h", "\-15m" or "\-30s" |
| .RE |
| .IP \[bu] 2 |
| \f[CB]filename\f[R]: (Optional) Name of the file to which the flight |
| recording data is dumped. |
| If no filename is given, a filename is generated from the PID and the |
| current date. |
| The filename may also be a directory in which case, the filename is |
| generated from the PID and the current date in the specified directory. |
| (STRING, no default value) |
| .IP \[bu] 2 |
| \f[CB]maxage\f[R]: (Optional) Length of time for dumping the flight |
| recording data to a file. |
| (INTEGER followed by \[aq]s\[aq] for seconds \[aq]m\[aq] for minutes or |
| \[aq]h\[aq] for hours, no default value) |
| .IP \[bu] 2 |
| \f[CB]maxsize\f[R]: (Optional) Maximum size for the amount of data to dump |
| from a flight recording in bytes if one of the following suffixes is not |
| used: \[aq]m\[aq] or \[aq]M\[aq] for megabytes OR \[aq]g\[aq] or |
| \[aq]G\[aq] for gigabytes. |
| (STRING, no default value) |
| .IP \[bu] 2 |
| \f[CB]name\f[R]: (Optional) Name of the recording. |
| If no name is given, data from all recordings is dumped. |
| (STRING, no default value) |
| .IP \[bu] 2 |
| \f[CB]path\-to\-gc\-root\f[R]: (Optional) Flag for saving the path to |
| garbage collection (GC) roots at the time the recording data is dumped. |
| The path information is useful for finding memory leaks but collecting |
| it can cause the application to pause for a short period of time. |
| Turn on this flag only when you have an application that you suspect has |
| a memory leak. |
| (BOOLEAN, false) |
| .RE |
| .TP |
| .B \f[CB]JFR.start\f[R] [\f[I]options\f[R]] |
| Start a flight recording |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or |
| \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| If no parameters are entered, then a recording is started with default |
| values. |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]delay\f[R]: (Optional) Length of time to wait before starting to |
| record (INTEGER followed by \[aq]s\[aq] for seconds \[aq]m\[aq] for |
| minutes or \[aq]h\[aq] for hours, 0s) |
| .IP \[bu] 2 |
| \f[CB]disk\f[R]: (Optional) Flag for also writing the data to disk while |
| recording (BOOLEAN, true) |
| .IP \[bu] 2 |
| \f[CB]dumponexit\f[R]: (Optional) Flag for writing the recording to disk |
| when the Java Virtual Machine (JVM) shuts down. |
| If set to \[aq]true\[aq] and no value is given for \f[CB]filename\f[R], |
| the recording is written to a file in the directory where the process |
| was started. |
| The file name is a system\-generated name that contains the process ID, |
| the recording ID and the current time stamp. |
| (For example: \f[CB]id\-1\-2019_12_12_10_41.jfr\f[R]) (BOOLEAN, false) |
| .IP \[bu] 2 |
| \f[CB]duration\f[R]: (Optional) Length of time to record. |
| Note that \f[CB]0s\f[R] means forever (INTEGER followed by \[aq]s\[aq] for |
| seconds \[aq]m\[aq] for minutes or \[aq]h\[aq] for hours, 0s) |
| .IP \[bu] 2 |
| \f[CB]filename\f[R]: (Optional) Name of the file to which the flight |
| recording data is written when the recording is stopped. |
| If no filename is given, a filename is generated from the PID and the |
| current date and is placed in the directory where the process was |
| started. |
| The filename may also be a directory in which case, the filename is |
| generated from the PID and the current date in the specified directory. |
| (STRING, no default value) |
| .IP \[bu] 2 |
| \f[CB]maxage\f[R]: (Optional) Maximum time to keep the recorded data on |
| disk. |
| This parameter is valid only when the \f[CB]disk\f[R] parameter is set to |
| \f[CB]true\f[R]. |
| Note \f[CB]0s\f[R] means forever. |
| (INTEGER followed by \[aq]s\[aq] for seconds \[aq]m\[aq] for minutes or |
| \[aq]h\[aq] for hours, 0s) |
| .IP \[bu] 2 |
| \f[CB]maxsize\f[R]: (Optional) Maximum size of the data to keep on disk in |
| bytes if one of the following suffixes is not used: \[aq]m\[aq] or |
| \[aq]M\[aq] for megabytes OR \[aq]g\[aq] or \[aq]G\[aq] for gigabytes. |
| This parameter is valid only when the \f[CB]disk\f[R] parameter is set to |
| \[aq]true\[aq]. |
| The value must not be less than the value for the \f[CB]maxchunksize\f[R] |
| parameter set with the \f[CB]JFR.configure\f[R] command. |
| (STRING, 0 (no maximum size)) |
| .IP \[bu] 2 |
| \f[CB]name\f[R]: (Optional) Name of the recording. |
| If no name is provided, a name is generated. |
| Make note of the generated name that is shown in the response to the |
| command so that you can use it with other commands. |
| (STRING, system\-generated default name) |
| .IP \[bu] 2 |
| \f[CB]path\-to\-gc\-root\f[R]: (Optional) Flag for saving the path to |
| garbage collection (GC) roots at the end of a recording. |
| The path information is useful for finding memory leaks but collecting |
| it is time consuming. |
| Turn on this flag only when you have an application that you suspect has |
| a memory leak. |
| If the \f[CB]settings\f[R] parameter is set to \[aq]profile\[aq], then the |
| information collected includes the stack trace from where the potential |
| leaking object was allocated. |
| (BOOLEAN, false) |
| .IP \[bu] 2 |
| \f[CB]settings\f[R]: (Optional) Name of the settings file that identifies |
| which events to record. |
| To specify more than one file, separate the names with a comma |
| (\[aq],\[aq]). |
| Include the path if the file is not in \f[CB]JAVA\-HOME\f[R]/lib/jfr. |
| The following profiles are included with the JDK in the |
| \f[CB]JAVA\-HOME\f[R]/lib/jfr directory: \[aq]default.jfc\[aq]: collects a |
| predefined set of information with low overhead, so it has minimal |
| impact on performance and can be used with recordings that run |
| continuously; \[aq]profile.jfc\[aq]: Provides more data than the |
| \[aq]default.jfc\[aq] profile, but with more overhead and impact on |
| performance. |
| Use this configuration for short periods of time when more information |
| is needed. |
| Use \f[CB]none\f[R] to start a recording without a predefined |
| configuration file. |
| (STRING, \f[CB]JAVA\-HOME\f[R]/lib/jfr/default.jfc) |
| .RE |
| .TP |
| .B \f[CB]JFR.stop\f[R] [\f[I]options\f[R]] |
| Stop a flight recording |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or |
| \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| If no parameters are entered, then no recording is stopped. |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]filename\f[R]: (Optional) Name of the file to which the recording is |
| written when the recording is stopped. |
| If no path is provided, the data from the recording is discarded. |
| (STRING, no default value) |
| .IP \[bu] 2 |
| \f[CB]name\f[R]: (Optional) Name of the recording (STRING, no default |
| value) |
| .RE |
| .TP |
| .B \f[CB]JVMTI.agent_load\f[R] [\f[I]arguments\f[R]] |
| Loads JVMTI native agent. |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(control)\f[R] |
| .PP |
| \f[I]arguments\f[R]: |
| .IP \[bu] 2 |
| \f[I]library path\f[R]: Absolute path of the JVMTI agent to load. |
| (STRING, no default value) |
| .IP \[bu] 2 |
| \f[I]agent option\f[R]: (Optional) Option string to pass the agent. |
| (STRING, no default value) |
| .RE |
| .TP |
| .B \f[CB]JVMTI.data_dump\f[R] |
| Signals the JVM to do a data\-dump request for JVMTI. |
| .RS |
| .PP |
| Impact: High |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .RE |
| .TP |
| .B \f[CB]ManagementAgent.start\f[R] [\f[I]options\f[R]] |
| Starts remote management agent. |
| .RS |
| .PP |
| Impact: Low \-\-\- no impact |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The following \f[I]options\f[R] must be specified using either |
| \f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]config.file\f[R]: (Optional) Sets |
| \f[CB]com.sun.management.config.file\f[R] (STRING, no default value) |
| .IP \[bu] 2 |
| \f[CB]jmxremote.host\f[R]: (Optional) Sets |
| \f[CB]com.sun.management.jmxremote.host\f[R] (STRING, no default value) |
| .IP \[bu] 2 |
| \f[CB]jmxremote.port\f[R]: (Optional) Sets |
| \f[CB]com.sun.management.jmxremote.port\f[R] (STRING, no default value) |
| .IP \[bu] 2 |
| \f[CB]jmxremote.rmi.port\f[R]: (Optional) Sets |
| \f[CB]com.sun.management.jmxremote.rmi.port\f[R] (STRING, no default |
| value) |
| .IP \[bu] 2 |
| \f[CB]jmxremote.ssl\f[R]: (Optional) Sets |
| \f[CB]com.sun.management.jmxremote.ssl\f[R] (STRING, no default value) |
| .IP \[bu] 2 |
| \f[CB]jmxremote.registry.ssl\f[R]: (Optional) Sets |
| \f[CB]com.sun.management.jmxremote.registry.ssl\f[R] (STRING, no default |
| value) |
| .IP \[bu] 2 |
| \f[CB]jmxremote.authenticate\f[R]: (Optional) Sets |
| \f[CB]com.sun.management.jmxremote.authenticate\f[R] (STRING, no default |
| value) |
| .IP \[bu] 2 |
| jmxremote.password.file: (Optional) Sets |
| \f[CB]com.sun.management.jmxremote.password.file\f[R] (STRING, no default |
| value) |
| .IP \[bu] 2 |
| \f[CB]jmxremote.access.file\f[R]: (Optional) Sets |
| \f[CB]com.sun.management.jmxremote.acce\ ss.file\f[R] (STRING, no default |
| value) |
| .IP \[bu] 2 |
| \f[CB]jmxremote.login.config\f[R]: (Optional) Sets |
| \f[CB]com.sun.management.jmxremote.log\ in.config\f[R] (STRING, no default |
| value) |
| .IP \[bu] 2 |
| \f[CB]jmxremote.ssl.enabled.cipher.suites\f[R]: (Optional) Sets |
| \f[CB]com.sun.management\f[R]. |
| .IP \[bu] 2 |
| \f[CB]jmxremote.ssl.enabled.cipher.suite\f[R]: (STRING, no default value) |
| .IP \[bu] 2 |
| \f[CB]jmxremote.ssl.enabled.protocols\f[R]: (Optional) Sets |
| \f[CB]com.sun.management.jmxr\ emote.ssl.enabled.protocols\f[R] (STRING, |
| no default value) |
| .IP \[bu] 2 |
| \f[CB]jmxremote.ssl.need.client.auth\f[R]: (Optional) Sets |
| \f[CB]com.sun.management.jmxre\ mote.need.client.auth\f[R] (STRING, no |
| default value) |
| .IP \[bu] 2 |
| \f[CB]jmxremote.ssl.config.file\f[R]: (Optional) Sets |
| \f[CB]com.sun.management.jmxremote.\ ssl_config_file\f[R] (STRING, no |
| default value) |
| .IP \[bu] 2 |
| \f[CB]jmxremote.autodiscovery\f[R]: (Optional) Sets |
| \f[CB]com.sun.management.jmxremote.au\ todiscovery\f[R] (STRING, no |
| default value) |
| .IP \[bu] 2 |
| \f[CB]jdp.port\f[R]: (Optional) Sets \f[CB]com.sun.management.jdp.port\f[R] |
| (INT, no default value) |
| .IP \[bu] 2 |
| \f[CB]jdp.address\f[R]: (Optional) Sets |
| \f[CB]com.sun.management.jdp.address\f[R] (STRING, no default value) |
| .IP \[bu] 2 |
| \f[CB]jdp.source_addr\f[R]: (Optional) Sets |
| \f[CB]com.sun.management.jdp.source_addr\f[R] (STRING, no default value) |
| .IP \[bu] 2 |
| \f[CB]jdp.ttl\f[R]: (Optional) Sets \f[CB]com.sun.management.jdp.ttl\f[R] |
| (INT, no default value) |
| .IP \[bu] 2 |
| \f[CB]jdp.pause\f[R]: (Optional) Sets |
| \f[CB]com.sun.management.jdp.pause\f[R] (INT, no default value) |
| .IP \[bu] 2 |
| \f[CB]jdp.name\f[R]: (Optional) Sets \f[CB]com.sun.management.jdp.name\f[R] |
| (STRING, no default value) |
| .RE |
| .TP |
| .B \f[CB]ManagementAgent.start_local\f[R] |
| Starts the local management agent. |
| .RS |
| .PP |
| Impact: Low \-\-\- no impact |
| .RE |
| .TP |
| .B \f[CB]ManagementAgent.status\f[R] |
| Print the management agent status. |
| .RS |
| .PP |
| Impact: Low \-\-\- no impact |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .RE |
| .TP |
| .B \f[CB]ManagementAgent.stop\f[R] |
| Stops the remote management agent. |
| .RS |
| .PP |
| Impact: Low \-\-\- no impact |
| .RE |
| .TP |
| .B \f[CB]Thread.print\f[R] [\f[I]options\f[R]] |
| Prints all threads with stacktraces. |
| .RS |
| .PP |
| Impact: Medium \-\-\- depends on the number of threads. |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The following \f[I]options\f[R] must be specified using either |
| \f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]\-l\f[R]: (Optional) Prints \f[CB]java.util.concurrent\f[R] locks |
| (BOOLEAN, false) |
| .RE |
| .TP |
| .B \f[CB]VM.classloader_stats\f[R] |
| Prints statistics about all ClassLoaders. |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .RE |
| .TP |
| .B \f[CB]VM.class_hierarchy\f[R] [\f[I]options\f[R]] [\f[I]arguments\f[R]] |
| Prints a list of all loaded classes, indented to show the class |
| hierarchy. |
| The name of each class is followed by the ClassLoaderData* of its |
| ClassLoader, or "null" if it is loaded by the bootstrap class loader. |
| .RS |
| .PP |
| Impact: Medium \-\-\- depends on the number of loaded classes. |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The following \f[I]options\f[R] must be specified using either |
| \f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]\-i\f[R]: (Optional) Inherited interfaces should be printed. |
| (BOOLEAN, false) |
| .IP \[bu] 2 |
| \f[CB]\-s\f[R]: (Optional) If a class name is specified, it prints the |
| subclasses. |
| If the class name is not specified, only the superclasses are printed. |
| (BOOLEAN, false) |
| .PP |
| \f[I]arguments\f[R]: |
| .IP \[bu] 2 |
| \f[I]classname\f[R]: (Optional) The name of the class whose hierarchy |
| should be printed. |
| If not specified, all class hierarchies are printed. |
| (STRING, no default value) |
| .RE |
| .TP |
| .B \f[CB]VM.command_line\f[R] |
| Prints the command line used to start this VM instance. |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .RE |
| .TP |
| .B \f[CB]VM.dynlibs\f[R] |
| Prints the loaded dynamic libraries. |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .RE |
| .TP |
| .B \f[CB]VM.info\f[R] |
| Prints information about the JVM environment and status. |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .RE |
| .TP |
| .B \f[CB]VM.log\f[R] [\f[I]options\f[R]] |
| Lists current log configuration, enables/disables/configures a log |
| output, or ro tates all logs. |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(control)\f[R] |
| .PP |
| \f[I]options\f[R]: |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The following \f[I]options\f[R] must be specified using either |
| \f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| .IP \[bu] 2 |
| \f[CB]output\f[R]: (Optional) The name or index (#) of output to |
| configure. |
| (STRING, no default value) |
| .IP \[bu] 2 |
| \f[CB]output_options\f[R]: (Optional) Options for the output. |
| (STRING, no default value) |
| .IP \[bu] 2 |
| \f[CB]what\f[R]: (Optional) Configures what tags to log. |
| (STRING, no default value ) |
| .IP \[bu] 2 |
| \f[CB]decorators\f[R]: (Optional) Configures which decorators to use. |
| Use \[aq]none\[aq] or an empty value to remove all. |
| (STRING, no default value) |
| .IP \[bu] 2 |
| \f[CB]disable\f[R]: (Optional) Turns off all logging and clears the log |
| configuration. |
| (BOOLEAN, no default value) |
| .IP \[bu] 2 |
| \f[CB]list\f[R]: (Optional) Lists current log configuration. |
| (BOOLEAN, no default value) |
| .IP \[bu] 2 |
| \f[CB]rotate\f[R]: (Optional) Rotates all logs. |
| (BOOLEAN, no default value) |
| .RE |
| .TP |
| .B \f[CB]VM.flags\f[R] [\f[I]options\f[R]] |
| Prints the VM flag options and their current values. |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The following \f[I]options\f[R] must be specified using either |
| \f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]\-all\f[R]: (Optional) Prints all flags supported by the VM |
| (BOOLEAN, false). |
| .RE |
| .TP |
| .B \f[CB]VM.native_memory\f[R] [\f[I]options\f[R]] |
| Prints native memory usage |
| .RS |
| .PP |
| Impact: Medium |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The following \f[I]options\f[R] must be specified using either |
| \f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]summary\f[R]: (Optional) Requests runtime to report current memory |
| summary, which includes total reserved and committed memory, along with |
| memory usage summary by each subsystem. |
| (BOOLEAN, false) |
| .IP \[bu] 2 |
| \f[CB]detail\f[R]: (Optional) Requests runtime to report memory allocation |
| >= 1K by each callsite. |
| (BOOLEAN, false) |
| .IP \[bu] 2 |
| \f[CB]baseline\f[R]: (Optional) Requests runtime to baseline current |
| memory usage, so it can be compared against in later time. |
| (BOOLEAN, false) |
| .IP \[bu] 2 |
| \f[CB]summary.diff\f[R]: (Optional) Requests runtime to report memory |
| summary comparison against previous baseline. |
| (BOOLEAN, false) |
| .IP \[bu] 2 |
| \f[CB]detail.diff\f[R]: (Optional) Requests runtime to report memory |
| detail comparison against previous baseline, which shows the memory |
| allocation activities at different callsites. |
| (BOOLEAN, false) |
| .IP \[bu] 2 |
| \f[CB]shutdown\f[R]: (Optional) Requests runtime to shutdown itself and |
| free the memory used by runtime. |
| (BOOLEAN, false) |
| .IP \[bu] 2 |
| \f[CB]statistics\f[R]: (Optional) Prints tracker statistics for tuning |
| purpose. |
| (BOOLEAN, false) |
| .IP \[bu] 2 |
| \f[CB]scale\f[R]: (Optional) Memory usage in which scale, KB, MB or GB |
| (STRING, KB) |
| .RE |
| .TP |
| .B \f[CB]VM.print_touched_methods\f[R] |
| Prints all methods that have ever been touched during the lifetime of |
| this JVM. |
| .RS |
| .PP |
| Impact: Medium \-\-\- depends on Java content. |
| .RE |
| .TP |
| .B \f[CB]VM.set_flag\f[R] [\f[I]arguments\f[R]] |
| Sets the VM flag option by using the provided value. |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(control)\f[R] |
| .PP |
| \f[I]arguments\f[R]: |
| .IP \[bu] 2 |
| \f[I]flag name\f[R]: The name of the flag that you want to set (STRING, |
| no default value) |
| .IP \[bu] 2 |
| \f[I]string value\f[R]: (Optional) The value that you want to set |
| (STRING, no default value) |
| .RE |
| .TP |
| .B \f[CB]VM.stringtable\f[R] [\f[I]options\f[R]] |
| Dumps the string table. |
| .RS |
| .PP |
| Impact: Medium \-\-\- depends on the Java content. |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The following \f[I]options\f[R] must be specified using either |
| \f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]\-verbose\f[R]: (Optional) Dumps the content of each string in the |
| table (BOOLEAN, false) |
| .RE |
| .TP |
| .B \f[CB]VM.symboltable\f[R] [\f[I]options\f[R]] |
| Dumps the symbol table. |
| .RS |
| .PP |
| Impact: Medium \-\-\- depends on the Java content. |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The following \f[I]options\f[R] must be specified using either |
| \f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax). |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]\-verbose\f[R]: (Optional) Dumps the content of each symbol in the |
| table (BOOLEAN, false) |
| .RE |
| .TP |
| .B \f[CB]VM.systemdictionary\f[R] |
| Prints the statistics for dictionary hashtable sizes and bucket length. |
| .RS |
| .PP |
| Impact: Medium |
| .PP |
| Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R] |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The following \f[I]options\f[R] must be specified using either |
| \f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]verbose\f[R]: (Optional) Dump the content of each dictionary entry |
| for all class loaders (BOOLEAN, false) . |
| .RE |
| .TP |
| .B \f[CB]VM.system_properties\f[R] |
| Prints the system properties. |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| Permission: \f[CB]java.util.PropertyPermission(*,\ read)\f[R] |
| .RE |
| .TP |
| .B \f[CB]VM.uptime\f[R] [\f[I]options\f[R]] |
| Prints the VM uptime. |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| The following \f[I]options\f[R] must be specified using either |
| \f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax. |
| .PP |
| \f[I]options\f[R]: |
| .IP \[bu] 2 |
| \f[CB]\-date\f[R]: (Optional) Adds a prefix with the current date |
| (BOOLEAN, false) |
| .RE |
| .TP |
| .B \f[CB]VM.version\f[R] |
| Prints JVM version information. |
| .RS |
| .PP |
| Impact: Low |
| .PP |
| Permission: |
| \f[CB]java.util.PropertyPermission(java.vm.version,\ read)\f[R] |
| .RE |