3.2.1 JVM 参数设置
你几乎可以不去调整Java虚拟机(JVM)参数,如何非要做的话,你最有可能去修改 heap size ,本章中详细的说明了如何设置JVM参数。
修改JVM参数(包括系统属性和JAVA指标)的首选方法是通过修改 jvm.options
,
其默认文件在 config/jvm.options
(是 tar 或 zip 方法安装) 或者/etc/elasticsearch/jvm.options
( Debian 或 Linux 方法安装).
该文件包含了以遵循行分隔符为规则的JVM参数
- 空行将会忽略
- 以
#
开头的行被视为注释而被忽略
# this is a comment
- 以
-
开头的行被视为 JVM 选项-Xmx2g
- 以数字开头且后跟
:-
的行被视为 JVM 选项,仅当 JVM 的版本与数字匹配。8:-Xmx2g
- 以数字开头的行,后跟
-:-
被视为 JVM 选项,仅当 JVM 的版本大于或等于数字时才适用。8-:-Xmx2g
- 以数字开头,后跟
-
再跟数字和:-
行被视为JVM选项,仅当JVM的版本在这两个数字的范围内时才应用该选项8-9:-Xmx2g
- 剩下的所有行都无效
你在此文件内自定义 JVM 标签,然后将此文件配置到系统中。
设置 JAVA 虚拟机参数是可以通过修改ES_JAVA_OPTS
环境变量。例如:
export ES_JAVA_OPTS="$ES_JAVA_OPTS -Djava.io.tmpdir=/path/to/temp/dir"
./bin/elasticsearch
如果是 RPM 或 Debian 包安装时,可以在系统配置中指定ES_JAVA_OPTS
参数值。
JVM 具有自动查找JAVA_TOOL_OPTIONS
环境变量的内部机制,我们可以有意识的在打包过程中忽略该参数。这么做是因为在某些操作系统中(例如 Ubutu)上,默认情况下通过此环境变量安装了代理程序,我们不想让这些程序干扰Elasticsearch。
此外,其他一些的 JAVA 程序支持JAVA_OPTS
环境变量。这不是 JVM 的内置机制,而是生态系统中的约定。但是我们不支持该变量修改 JVM 参数,而是通过修改JVM options
文件 或者是 ES_JAVA_OPTS
环境变量。
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。