Elasticsearch6.2.3版本的heap size设置怎么设置最优?

在默认情况下,Elasticsearch告诉JVM使用最少和最大大小为1 GB的堆。

在迁移到生产环境时,配置堆大小是很重要的,以确保Elasticsearch有足够的堆可用。

Elasticsearch将分配jvm中指定的整个堆。通过Xms(最小堆大小)和Xmx(最大堆大小)设置选项。

这些设置的值取决于服务器上可用RAM的数量。好的经验法则是:将最小堆大小(Xms)和最大堆大小(Xmx)设置为相等。

Elasticsearch的可用堆越多,它就可以用于缓存的内存越多。但是请注意,过多的堆会让您长时间的垃圾收集暂停。

将Xmx设置为不超过物理RAM的一半,以确保有足够的物理RAM留给内核文件系统缓存。

不要将Xmx设置为JVM用于压缩对象指针(压缩噢)的截止日期;确切的截止日期是不同的,但接近32 GB。

您可以通过在日志中查找一条线来验证您是否处于限制之下:

heap size [1.9gb], compressed ordinary object pointers [true]

更好的是,尽量保持在零基压缩的阈值以下;具体的截止日期是不同的,但是26 GB在大多数系统上是安全的,但是在某些系统上可以有30 GB的空间。您可以通过使用JVM选项来启动Elasticsearch来验证您是否处于限制之下:

heap address: 0x000000011be00000, size: 27648 MB, zero based Compressed Oops

显示了基于零的压缩是启用的而不是:

heap address: 0x0000000118400000, size: 28672 MB, Compressed Oops with base: 0x00000001183ff000

下面是如何通过jvm设置堆大小的示例。选择文件:

-Xms2g
-Xmx2g

也可以通过环境变量来设置堆大小。这可以通过在jvm中注释Xms和Xmx设置来完成。选项文件并通过esjava选项设置这些值:

ES_JAVA_OPTS=”-Xms2g -Xmx2g” ./bin/
ES_JAVA_OPTS=”-Xms4000m -Xmx4000m” ./bin/

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注