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]

相關文章
相關標籤/搜索