Elasticsearch6.2.3版本的heap size設置

在默認情況下,彈性搜索告訴JVM使用最少和最大大小爲1 GB的堆。在遷移到生產環境時,配置堆大小是很重要的,以確保彈性搜索有足夠的堆可用。

彈性搜索將分配jvm中指定的整個堆。通過Xms(最小堆大小)和Xmx(最大堆大小)設置選項。

這些設置的值取決於服務器上可用RAM的數量。好的經驗法則是:

將最小堆大小(Xms)和最大堆大小(Xmx)設置爲相等。

彈性搜索的可用堆越多,它就可以用於緩存的內存越多。但是請注意,過多的堆會讓您長時間的垃圾收集暫停。

將Xmx設置爲不超過物理RAM的一半,以確保有足夠的物理RAM留給內核文件系統緩存。

不要將Xmx設置爲JVM用於壓縮對象指針(壓縮噢)的截止日期;確切的截止日期是不同的,但接近32 GB。您可以通過在日誌中查找一條線來驗證您是否處於限制之下:

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

更好的是,儘量保持在零基壓縮的閾值以下;具體的截止日期是不同的,但是26 GB在大多數系統上是安全的,但是在某些系統上可以有30 GB的空間。您可以通過使用JVM選項來啓動彈性搜索來驗證您是否處於限制之下——XX:+unlock診斷-XX:+print壓縮sedoopsmode,並尋找如下的行:

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/elasticsearch 
ES_JAVA_OPTS="-Xms4000m -Xmx4000m" ./bin/elasticsearch 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章