当前位置: 首页 > 知识库问答 >
问题:

弹性搜索增加堆大小

笪成周
2023-03-14

我们在 Amazon ECS 上的 docker 容器中运行 Elasticsearch。我们注意到堆随着时间的推移略有增加。我们第一次注意到它是当它提高到70%以上并开始丢弃请求(index.breaker.total.limit)时。

问题是我从来没有见过减少的堆,感觉很腥!

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

还有其他人有类似的经历?它是 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% 以上吗?

共有1个答案

拓拔嘉运
2023-03-14

这可能与 2.X 之前版本中的这种已知行为有关,主要影响 Kibana,但我想也影响 elasticsearch。

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

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

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

bootstrap.mlockall: true

你有很多分片/副本吗?你也使用木花吗?

 类似资料:
  • 在学习ElasticSearch的过程中,我偶然发现并没有得出最终结论。 ElasticSearch的最大碎片大小是多少

  • 我使用Elasticsearch允许用户输入要搜索的术语。例如,我要搜索以下属性'name': 如果使用以下代码搜索或,我希望返回此文档。 我尝试过做一个bool must和做多个术语,但它似乎只有在整个字符串都匹配的情况下才起作用。 所以我真正想做的是,这个词是否以任何顺序包含两个词。 有人能帮我走上正轨吗?我已经在这上面砸了一段时间了。

  • 当我执行ps-aef grep elasticsearch HeapDumpOnOutOfMemoryError时看到了这一点 501 373 47 1 0 2:29pm ttys004 0:04.14/usr/bin/Java-xms4g-xmx4g-xss256k-djava.awt.headless=true-xx:+useparnewgc-xx:+useparnewgc-xx:+usepa

  • 我从ElasticSearch得到以下错误。 我在Ubuntu上运行Elasticsearch 1.7.2。 我做错了什么?

  • 我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢

  • 我们继续充实我们应用程序的功能。如今,我们添加搜索。GTK+在GtkSearchEntry和Gtksearchbar中支持这个功能。搜索条是一个可以嵌入顶端来展现搜索输入。 我们在头栏增加一个开关按钮,他可以用来滑出头栏下的搜索条。 <?xml version="1.0" encoding="UTF-8"?> <interface> <!-- interface-requires gtk+ 3

  • 很抱歉,但是ES的文档(http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index.html)让我感到困惑。 多亏了术语表,我理解了数据库、表和行的术语,但我阅读了文档的大部分部分,但我找不到答案: 为什么需要在索引创建中添加和?我确实在这里查看了http://www.elasticsearch.org/g

  • 我尝试使用https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-get.html弹性搜索文档,从我刚刚创建的索引中获取文档 我的整个代码是: 给出集群的名称(如果在ElasticSearch.yml中更改)Java ElasticSearch没有配置的节点可用NoNodeAvailableEx