Add comment explaining priority of JVM options (#52348)
Reading the startup scripts does not elucidate how JVM options are applied. Instead, the reader must consult the source for the JVM options parser. This commit adds some transparency around this process so that it easier to understand reading the startup scripts how the final JVM options to start Elasticsearch are constructed.
This commit is contained in:
parent
f0747e607d
commit
012420a495
|
@ -8,8 +8,7 @@
|
|||
# ES_PATH_CONF -- Path to config directory
|
||||
# ES_JAVA_OPTS -- External Java Opts on top of the defaults set
|
||||
#
|
||||
# Optionally, exact memory values can be set using the `ES_JAVA_OPTS`. Note that
|
||||
# the Xms and Xmx lines in the JVM options file must be commented out. Example
|
||||
# Optionally, exact memory values can be set using the `ES_JAVA_OPTS`. Example
|
||||
# values are "512m", and "10g".
|
||||
#
|
||||
# ES_JAVA_OPTS="-Xms8g -Xmx8g" ./bin/elasticsearch
|
||||
|
@ -46,6 +45,13 @@ then
|
|||
fi
|
||||
fi
|
||||
|
||||
# The JVM options parser produces the final JVM options to start Elasticsearch.
|
||||
# It does this by incorporating JVM options in the following way:
|
||||
# - first, system JVM options are applied (these are hardcoded options in the
|
||||
# parser)
|
||||
# - second, JVM options are read from jvm.options and jvm.options.d/*.options
|
||||
# - third, JVM options from ES_JAVA_OPTS are applied
|
||||
# - fourth, ergonomic JVM options are applied
|
||||
ES_JAVA_OPTS=`export ES_TMPDIR; "$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.JvmOptionsParser "$ES_PATH_CONF"`
|
||||
|
||||
# manual parsing to find out, if process should be detached
|
||||
|
|
|
@ -110,7 +110,15 @@ if not defined ES_TMPDIR (
|
|||
for /f "tokens=* usebackq" %%a in (`CALL %JAVA% -cp "!ES_CLASSPATH!" "org.elasticsearch.tools.launchers.TempDirectory"`) do set ES_TMPDIR=%%a
|
||||
)
|
||||
|
||||
set ES_JVM_OPTIONS=%ES_PATH_CONF%\jvm.options
|
||||
rem The JVM options parser produces the final JVM options to start
|
||||
rem Elasticsearch. It does this by incorporating JVM options in the following
|
||||
rem way:
|
||||
rem - first, system JVM options are applied (these are hardcoded options in
|
||||
rem the parser)
|
||||
rem - second, JVM options are read from jvm.options and
|
||||
rem jvm.options.d/*.options
|
||||
rem - third, JVM options from ES_JAVA_OPTS are applied
|
||||
rem - fourth, ergonomic JVM options are applied
|
||||
|
||||
if not "%ES_JAVA_OPTS%" == "" set ES_JAVA_OPTS=%ES_JAVA_OPTS: =;%
|
||||
|
||||
|
|
|
@ -72,6 +72,15 @@ if not defined ES_TMPDIR (
|
|||
for /f "tokens=* usebackq" %%a in (`CALL %JAVA% -cp "!ES_CLASSPATH!" "org.elasticsearch.tools.launchers.TempDirectory"`) do set ES_TMPDIR=%%a
|
||||
)
|
||||
|
||||
rem The JVM options parser produces the final JVM options to start
|
||||
rem Elasticsearch. It does this by incorporating JVM options in the following
|
||||
rem way:
|
||||
rem - first, system JVM options are applied (these are hardcoded options in
|
||||
rem the parser)
|
||||
rem - second, JVM options are read from jvm.options and
|
||||
rem jvm.options.d/*.options
|
||||
rem - third, JVM options from ES_JAVA_OPTS are applied
|
||||
rem - fourth, ergonomic JVM options are applied
|
||||
@setlocal
|
||||
for /F "usebackq delims=" %%a in (`CALL %JAVA% -cp "!ES_CLASSPATH!" "org.elasticsearch.tools.launchers.JvmOptionsParser" "!ES_PATH_CONF!" ^|^| echo jvm_options_parser_failed`) do set ES_JAVA_OPTS=%%a
|
||||
@endlocal & set "MAYBE_JVM_OPTIONS_PARSER_FAILED=%ES_JAVA_OPTS%" & set ES_JAVA_OPTS=%ES_JAVA_OPTS%
|
||||
|
|
Loading…
Reference in New Issue