1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- [[jvm-options]]
- === Setting JVM options
- You should rarely need to change Java Virtual Machine (JVM) options. If you do,
- the most likely change is setting the <<heap-size,heap size>>. The remainder of
- this document explains in detail how to set JVM options.
- The preferred method of setting JVM options (including system properties and JVM
- flags) is via the `jvm.options` configuration file. The default location of this
- file is `config/jvm.options` (when installing from the tar or zip distributions)
- and `/etc/elasticsearch/jvm.options` (when installing from the Debian or RPM
- packages).
- This file contains a line-delimited list of JVM arguments following
- a special syntax:
- * lines consisting of whitespace only are ignored
- * lines beginning with `#` are treated as comments and are ignored
- +
- [source,text]
- -------------------------------------
- # this is a comment
- -------------------------------------
- * lines beginning with a `-` are treated as a JVM option that applies
- independent of the version of the JVM
- +
- [source,text]
- -------------------------------------
- -Xmx2g
- -------------------------------------
- * lines beginning with a number followed by a `:` followed by a `-` are treated
- as a JVM option that applies only if the version of the JVM matches the number
- +
- [source,text]
- -------------------------------------
- 8:-Xmx2g
- -------------------------------------
- * lines beginning with a number followed by a `-` followed by a `:` are treated
- as a JVM option that applies only if the version of the JVM is greater than or
- equal to the number
- +
- [source,text]
- -------------------------------------
- 8-:-Xmx2g
- -------------------------------------
- * lines beginning with a number followed by a `-` followed by a number followed
- by a `:` are treated as a JVM option that applies only if the version of the
- JVM falls in the range of the two numbers
- +
- [source,text]
- -------------------------------------
- 8-9:-Xmx2g
- -------------------------------------
- * all other lines are rejected
- You can add custom JVM flags to this file and check this configuration into your
- version control system.
- An alternative mechanism for setting Java Virtual Machine options is via the
- `ES_JAVA_OPTS` environment variable. For instance:
- [source,sh]
- ---------------------------------
- export ES_JAVA_OPTS="$ES_JAVA_OPTS -Djava.io.tmpdir=/path/to/temp/dir"
- ./bin/elasticsearch
- ---------------------------------
- When using the RPM or Debian packages, `ES_JAVA_OPTS` can be specified in the
- <<sysconfig,system configuration file>>.
- The JVM has a built-in mechanism for observing the `JAVA_TOOL_OPTIONS`
- environment variable. We intentionally ignore this environment variable in our
- packaging scripts. The primary reason for this is that on some OS (e.g., Ubuntu)
- there are agents installed by default via this environment variable that we do
- not want interfering with Elasticsearch.
- Additionally, some other Java programs support the `JAVA_OPTS` environment
- variable. This is *not* a mechanism built into the JVM but instead a convention
- in the ecosystem. However, we do not support this environment variable, instead
- supporting setting JVM options via the `jvm.options` file or the environment
- variable `ES_JAVA_OPTS` as above.
|