Elasticsearch增加堆大小

时间:2016-09-13 05:21:00

标签: java elasticsearch jvm

我们在Amazons ECS的docker容器中运行Elasticsearch。我们注意到堆随着时间的推移略有增加。我们第一次注意到它超过70%时开始抛弃请求(indices.breaker.total.limit)。

事情是,我从未见过减少堆积,感觉很可疑!

到目前为止,我们已经增加了实例大小,现在正在运行具有30G内存的实例。堆被设置为内存的一半,ES_HEAP_SIZE = 14g(Xmx = Xms = 14g)。

其他有相似经历的人?这是Elasticsearch中的错误吗?或者只是错误的可配置?

Elasticsearch ver: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%以上吗?

1 个答案:

答案 0 :(得分:0)

这可能与前2.X版本中的已知行为有关,主要影响Kibana,但我想也是弹性搜索。

请参阅此github问题: https://github.com/elastic/kibana/issues/5170

在您的情况下可能是相同的,这基本上归结为此节点问题:https://github.com/nodejs/node/issues/2683

ES中的配置也可能不理想。在elasticsearch配置中寻找这个常见的嫌疑人:

bootstrap.mlockall: true

你有很多碎片/复制品吗?你也使用Kibana吗?