2016-09-13 130 views
0

我們在Amazons ECS的Docker容器中運行Elasticsearch。我們注意到堆隨着時間的推移略有增加。我們第一次注意到當它提高到70%以上並開始扔掉請求時(indices.breaker.total.limit)。Elasticsearch增加堆大小

事情是,我從來沒有見過減少的堆,感到魚腥味!

到目前爲止,我們增加了實例大小,現在使用30G內存運行實例。堆設置爲aprox的一半,ES_HEAP_SIZE = 14g(Xmx = Xms = 14g)。

其他人有類似的經歷?這是Elasticsearch中的錯誤嗎?或者只是不正確的可配置?

Elasticsearch版本:1.5.1

> curl localhost:9200/_cat/fielddata?v 

id      host   ip   node   total position deal_status heading.sortorder org_relationlastmodified deal_value deal_probability 1_ZipCodeVisit_0 tag employer_tag 1_CityVisit_0 dateofregistration temperature uniqueId _type quick_ratio org_relation employer_relationlastmodified turnover turnover_per_employee deal_source employer_relation deal_statusdate 1_custom_1466 average_salary_per_employee deal_orderdate 0_NumberOfEmployeesRange_20 1_LegalForm_0 1_custom_1816 0_WorksiteType_100 0_LineOfBusiness_2 equity_ratio profitmargin 0_LineOfBusiness_1 0_CountyVisit_40 0_NumberOfEmployeesRange_22 0_MunicipalityVisit_61 0_LegalForm_110 dividends 1_custom_1744 0_MunicipalityVisit_60 responsiblecoworker result_before_tax 
XMTlkdnsToKvMHqgApMBAg 5dc819096905 172.17.0.2 Hitman  729.8mb 8.1mb  1.1mb   261.5mb     1.7mb 305.3kb   849.1kb   20.9mb 6.4mb  1.3mb  19.3mb    12.3mb   0b 283.7mb 9.6mb  5.1mb  810.5kb      632.2kb 11.6mb     4.1mb  150.8kb   566.4kb   568.6kb  34.1kb      4.2mb  973.5kb      5.7mb   4.6mb  37.4kb    4.9mb    8.1mb  4.7mb  4.2mb    9.2mb   3.3mb      4.2mb    802.9kb   3.9mb  4.3mb  37.7kb     7.5mb    2.4mb    5mb 
dHAoWkHMQKSnwAB0KrJRJw 8ffc068518f9 172.17.0.2 Moira Brandon 718.9mb 8.2mb  1.1mb   261.5mb     1.3mb  124kb   793.3kb   19.6mb 6.4mb   1mb  19.1mb    10.2mb   0b 283.8mb 9.6mb  5.2mb  714.7kb      791.3kb 8.8mb     3.4mb   0b   422.6kb   83.9kb  16.8kb      4.6mb  989.4kb      5.6mb   4.5mb   0b    5.2mb    7.9mb  4.1mb  4.3mb    9mb   3.2mb      4.3mb      0b   3.8mb  4.3mb   0b     7.1mb    2.5mb    4.4mb 

[更新2016年10月24日] 我們已經更新到2.4.0版本,但我們還是遇到同樣的問題。 如果我強制GC,堆釋放到大約4%,這是一個新的實例相同的價值。

例與73%堆上情況下,JVM MEM表明,舊的是10G左右,不知道這是正常的

jvm mem heap percent 73% 
"young": "used_in_bytes" : 199026920 
"survivor": "used_in_bytes" : 2422528 
"old":  "used_in_bytes" : 10754631392 

什麼觸發了GC?我們應該讓堆增加70%以上嗎?

+0

你能用'curl'localhost:9200/_cat/fielddata?v''獲得的輸出更新你的問題嗎? – Val

回答

0

這可能與這個在2.X之前版本中的已知行爲有關,主要影響Kibana,但我猜測也是elasticsearch。

看到這個GitHub的問題: https://github.com/elastic/kibana/issues/5170

它可能在你的情況下,基本上可以歸結爲這個節點的問題相同:https://github.com/nodejs/node/issues/2683

這也可能是在ES的配置是不理想。在elasticsearch配置中尋找這個通常的嫌疑犯:

bootstrap.mlockall: true 

你有很多的碎片/副本嗎?你也使用Kibana嗎?

+0

mlockall設置爲false。是的,我們正在運行kibana,但它運行在單獨的docker實例上(也在單獨的ec2實例上)。我們正在行動升級到2.4,讓我們看看我們是否仍然存在問題。我們有兩個節點(Master,Worker),分片大小是默認值(5)。 – spunk