-
Notifications
You must be signed in to change notification settings - Fork 25k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Document how to change GC logging behaviour (#52879)
Closes #43990. Describe how to change the default GC settings without changing the default `jvm.options`. Give examples using `jvm.options.d`, and `ES_JAVA_OPTS` with Docker.
- Loading branch information
1 parent
2670715
commit aa751e0
Showing
2 changed files
with
47 additions
and
4 deletions.
There are no files selected for viewing
48 changes: 45 additions & 3 deletions
48
docs/reference/setup/important-settings/gc-logging.asciidoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,49 @@ | ||
[[gc-logging]] | ||
=== GC logging | ||
|
||
By default, Elasticsearch enables GC logs. These are configured in | ||
<<jvm-options,`jvm.options`>> and default to the same default location as the | ||
Elasticsearch logs. The default configuration rotates the logs every 64 MB and | ||
By default, {es} enables GC logs. These are configured in | ||
<<jvm-options,`jvm.options`>> and output to the same default location as | ||
the {es} logs. The default configuration rotates the logs every 64 MB and | ||
can consume up to 2 GB of disk space. | ||
|
||
You can reconfigure JVM logging using the command line options described in | ||
https://openjdk.java.net/jeps/158[JEP 158: Unified JVM Logging]. Unless you | ||
change the default `jvm.options` file directly, the {es} default | ||
configuration is applied in addition to your own settings. To disable the | ||
default configuration, first disable logging by supplying the | ||
`-Xlog:disable` option, then supply your own command line options. This | ||
disables __all__ JVM logging, so be sure to review the available options | ||
and enable everything that you require. | ||
|
||
To see further options not contained in the original JEP, see | ||
https://docs.oracle.com/en/java/javase/13/docs/specs/man/java.html#enable-logging-with-the-jvm-unified-logging-framework[Enable | ||
Logging with the JVM Unified Logging Framework]. | ||
|
||
==== Examples | ||
|
||
* Change the default GC log output location to `/opt/my-app/gc.log` by | ||
creating `$ES_HOME/config/jvm.options.d/gc.options` with some sample | ||
options: | ||
+ | ||
[source,shell] | ||
-------------------------------------------- | ||
# Turn off all previous logging configuratons | ||
-Xlog:disable | ||
# Default settings from JEP 158, but with `utctime` instead of `uptime` to match the next line | ||
-Xlog:all=warning:stderr:utctime,level,tags | ||
# Enable GC logging to a custom location with a variety of options | ||
-Xlog:gc*,gc+age=trace,safepoint:file=/opt/my-app/gc.log:utctime,pid,tags:filecount=32,filesize=64m | ||
-------------------------------------------- | ||
|
||
* Configure an {es} <<docker,Docker container>> to send GC debug logs to | ||
standard error (`stderr`). This lets the container orchestrator | ||
handle the output. If using the `ES_JAVA_OPTS` environment variable, | ||
specify: | ||
+ | ||
[source,sh] | ||
-------------------------------------------- | ||
MY_OPTS="-Xlog:disable -Xlog:all=warning:stderr:utctime,level,tags -Xlog:gc=debug:stderr:utctime" | ||
docker run -e ES_JAVA_OPTS="$MY_OPTS" # etc | ||
-------------------------------------------- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters