Elasticsearch中设置JVM堆的大小(翻译)

Elasticsearch中设置JVM堆的大小(翻译)

原文连接[https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html]html

在jvm.options设置JVM堆通道的大小

默认状况下,Elasticsearch会告诉JVM使用的堆大小为2GB。当迁移产品,要确保为Elasticsearch配置的堆有足够的空间。windows

Elasticsearch 在jvm.options中指定了Xms(最小)和Xmx(最大)的堆的设置。所设置的值取决于你的服务器的可用内存大小。好的规则应知足:缓存

  • 最小堆的大小和最大堆的大小应该相等。安全

  • Elasticsearch可得到越多的堆,而且内存也能够使用更多的缓存。可是须要注意,分配了太多的堆给你的项目,将会致使有长时间的垃圾搜集停留。bash

  • 设置最大堆的值不能超过你物理内存的50%,要确保有足够多的物理内存来保证内核文件缓存。服务器

  • 不要将最大堆设置高于JVM用于压缩对象指针的截止值。确切的截止值是有变化,但接近32gb。您能够经过在日志中查找如下内容来验证您是否处于限制如下:markdown

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

  • 最好尝试保持在基于零压缩oops的阈值如下;当确切的截止值在大多数时候处于26GB是安全的。可是在大多数系统中也能够等于30GB。在启动Elasticsearch以后,你也能够在JVM参数中验证这个限制-XX:+UnlockDiagnosticVMOptions -XX:+PrintCompressedOopsMode和查询相似于下面这一行:jvm

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

  显示基于零压缩oops有被下面的所代替:elasticsearch

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

这里的例子告诉咱们如何在jvm.options文件中设置堆值:

  • -Xms2g #设置最小堆的值为2g
    -Xmx2g #设置组大堆的值为2g


也能够经过环境变量来设置堆的值。这能够经过注释掉jvm.options文件中的xmsxmx设置来完成,并经过ES_JAVA_OPTS选择设置这些值:

    ES_JAVA_OPTS="-Xms2g -Xmx2g" ./bin/elasticsearch #设置最小和最大堆的值为2g
    ES_JAVA_OPTS="-Xms4000m -Xmx4000m" ./bin/elasticsearch  #设置最小和最大堆的值为 4000M

注意:配置windows服务器和上面的是不一样的。详情参考windows文档[https://www.elastic.co/guide/en/elasticsearch/reference/current/zip-windows.html#windows-service]

相关文章
相关标签/搜索