Elasticsearch的Best Practice:把bootstrap.mlockall設爲true

elasticsearch中java的最小內存和最大內存,官方建議設置爲同樣的,這樣能夠因爲內存調整形成的長GC發生。
固然內存大小不要超過32G,html

參考http://zhaoyanblog.com/archives/744.htmljava

其次elasticsearch還有一個重要的參數bootstrap.mlockall,這個參數的目的是當你沒法關閉系統的swap的時候,建議把這個參數設爲true。防止在內存不夠用的時候,elasticsearch的內存被交換至交換區,致使性能驟降。linux

參考http://zhaoyanblog.com/archives/744.htmlbootstrap

建議即使你關閉了系統的swap,也把bootstrap.mlockall設爲trueelasticsearch

bootstrap.mlockall的做用就是在程序啓動的時候先去獲取足夠大的內存,再加入集羣接收請求。沒有bootstrap.mlockall的話,elasticsearch一啓動就會發現集羣接入集羣,接收請求,而後JVM一點點的獲取系統內存,直到指定值。性能

若是你有足夠大的內存還好,若是沒有足夠大的內存,由於了elasticsearch引用文件會,系統內存會大量用於系統cache(linux的內存管理機制)。htm

從程序啓動直到JVM獲取到指定大小的內存,可能因爲系統cache釋放緩慢,而致使這個過程很是長,這有可能使你的節點GC很是頻繁,從而致使集羣不穩定。blog

因此強烈建議把bootstrap.mlockall設爲true,這個值設爲true,可能會讓節點啓動的時候比較慢,可是保證了節點加入集羣后的穩定性。內存

相關文章
相關標籤/搜索