The jvm options template provided by this ansible role doesn't reflect current log4j configuration in elasticsearch 6.x and 7.x. This commit update it to default version provided in 6.x and 7.x elasticsearch standard packages.
142 lines
4.1 KiB
Django/Jinja
142 lines
4.1 KiB
Django/Jinja
## JVM configuration
|
|
|
|
################################################################
|
|
## IMPORTANT: JVM heap size
|
|
################################################################
|
|
##
|
|
## You should always set the min and max JVM heap
|
|
## size to the same value. For example, to set
|
|
## the heap to 4 GB, set:
|
|
##
|
|
## -Xms4g
|
|
## -Xmx4g
|
|
##
|
|
## See https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
|
|
## for more information
|
|
##
|
|
################################################################
|
|
|
|
# Xms represents the initial size of total heap space
|
|
# Xmx represents the maximum size of total heap space
|
|
{% if es_heap_size is defined %}
|
|
-Xms{{ es_heap_size }}
|
|
-Xmx{{ es_heap_size }}
|
|
{% else %}
|
|
-Xms2g
|
|
-Xmx2g
|
|
{% endif %}
|
|
|
|
################################################################
|
|
## Expert settings
|
|
################################################################
|
|
##
|
|
## All settings below this section are considered
|
|
## expert settings. Don't tamper with them unless
|
|
## you understand what you are doing
|
|
##
|
|
################################################################
|
|
|
|
## GC configuration
|
|
-XX:+UseConcMarkSweepGC
|
|
-XX:CMSInitiatingOccupancyFraction=75
|
|
-XX:+UseCMSInitiatingOccupancyOnly
|
|
|
|
## G1GC Configuration
|
|
# NOTE: G1GC is only supported on JDK version 10 or later.
|
|
# To use G1GC uncomment the lines below.
|
|
# 10-:-XX:-UseConcMarkSweepGC
|
|
# 10-:-XX:-UseCMSInitiatingOccupancyOnly
|
|
# 10-:-XX:+UseG1GC
|
|
{% if es_version is version('7.3.0', '<=') %}
|
|
# 10-:-XX:InitiatingHeapOccupancyPercent=75
|
|
{% else %}
|
|
# 10-:-XX:G1ReservePercent=25
|
|
# 10-:-XX:InitiatingHeapOccupancyPercent=30
|
|
{% endif %}
|
|
|
|
## DNS cache policy
|
|
# cache ttl in seconds for positive DNS lookups noting that this overrides the
|
|
# JDK security property networkaddress.cache.ttl; set to -1 to cache forever
|
|
-Des.networkaddress.cache.ttl=60
|
|
# cache ttl in seconds for negative DNS lookups noting that this overrides the
|
|
# JDK security property networkaddress.cache.negative ttl; set to -1 to cache
|
|
# forever
|
|
-Des.networkaddress.cache.negative.ttl=10
|
|
|
|
## optimizations
|
|
|
|
# pre-touch memory pages used by the JVM during initialization
|
|
-XX:+AlwaysPreTouch
|
|
|
|
## basic
|
|
|
|
# explicitly set the stack size
|
|
-Xss1m
|
|
|
|
# set to headless, just in case
|
|
-Djava.awt.headless=true
|
|
|
|
# ensure UTF-8 encoding by default (e.g. filenames)
|
|
-Dfile.encoding=UTF-8
|
|
|
|
# use our provided JNA always versus the system one
|
|
-Djna.nosys=true
|
|
|
|
# turn off a JDK optimization that throws away stack traces for common
|
|
# exceptions because stack traces are important for debugging
|
|
-XX:-OmitStackTraceInFastThrow
|
|
|
|
# flags to configure Netty
|
|
-Dio.netty.noUnsafe=true
|
|
-Dio.netty.noKeySetOptimization=true
|
|
-Dio.netty.recycler.maxCapacityPerThread=0
|
|
{% if es_version is version('7.4.0', '>=') %}
|
|
-Dio.netty.allocator.numDirectArenas=0
|
|
{% endif %}
|
|
|
|
# log4j 2
|
|
-Dlog4j.shutdownHookEnabled=false
|
|
-Dlog4j2.disable.jmx=true
|
|
|
|
-Djava.io.tmpdir=${ES_TMPDIR}
|
|
|
|
## heap dumps
|
|
|
|
# generate a heap dump when an allocation from the Java heap fails
|
|
# heap dumps are created in the working directory of the JVM
|
|
-XX:+HeapDumpOnOutOfMemoryError
|
|
|
|
# specify an alternative path for heap dumps; ensure the directory exists and
|
|
# has sufficient space
|
|
-XX:HeapDumpPath=${heap.dump.path}
|
|
|
|
# specify an alternative path for JVM fatal error logs
|
|
-XX:ErrorFile={{ es_log_dir }}/hs_err_pid%p.log
|
|
|
|
## JDK 8 GC logging
|
|
|
|
8:-XX:+PrintGCDetails
|
|
8:-XX:+PrintGCDateStamps
|
|
8:-XX:+PrintTenuringDistribution
|
|
8:-XX:+PrintGCApplicationStoppedTime
|
|
8:-Xloggc:{{ es_log_dir }}/gc.log
|
|
8:-XX:+UseGCLogFileRotation
|
|
8:-XX:NumberOfGCLogFiles=32
|
|
8:-XX:GCLogFileSize=64m
|
|
|
|
# JDK 9+ GC logging
|
|
9-:-Xlog:gc*,gc+age=trace,safepoint:file={{ es_log_dir }}/gc.log:utctime,pid,tags:filecount=32,filesize=64m
|
|
# due to internationalization enhancements in JDK 9 Elasticsearch need to set the provider to COMPAT otherwise
|
|
# time/date parsing will break in an incompatible way for some date patterns and locals
|
|
9-:-Djava.locale.providers=COMPAT
|
|
|
|
{% if es_major_version == "6.x" %}
|
|
# temporary workaround for C2 bug with JDK 10 on hardware with AVX-512
|
|
10-:-XX:UseAVX=2
|
|
{% endif %}
|
|
|
|
{% if es_jvm_custom_parameters !='' %}
|
|
{% for item in es_jvm_custom_parameters %}
|
|
{{ item }}
|
|
{% endfor %}
|
|
{% endif %}
|