原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/gc-logging.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/gc-logging.html

垃圾回收日志 (GC logging)

默认情况下,Elasticsearch启用 垃圾回收(GC) 日志。 这些在 jvm.options 中配置,并输出到与Elasticsearch日志相同的默认位置。 默认配置按 64 MB 切割日志,最多可消耗 2 GB的磁盘空间。

您可以使用 JEP 158: 统一的JVM日志 中描述的命令行选项来重新配置 JVM 日志。 除非你直接更改默认的 jvm.options文件,否则除了你自己的设置之外,还会应用 Elasticsearch 的默认配置。 要禁用默认配置,首先通过提供 -Xlog:disable 选项来禁用日志记录,然后提供你自己的命令行选项。 这将禁用 所有的 JVM日志记录,所以请务必检查可用的选项,并启用你需要的所有选项。

要查看原始 JEP 中未包含的更多选项,请参考 使用JVM统一日志记录框架启用日志记录

举例

  • 通过使用一些示例选项创建 $ES_HOME/config/jvm.options.d/gc.options ,将默认的GC日志输出位置更改为 /opt/my-app/gc.log

    # 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
  • 配置一个 Elasticsearch Docker 容器 将 GC 调试日志发送到标准错误 (stderr)。 这会让容器编排器处理输出。 如果使用 ES_JAVA_OPTS 环境变量,请指定:

    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