首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于弹性搜索记忆的使用

关于弹性搜索记忆的使用
EN

Stack Overflow用户
提问于 2012-11-25 14:18:34
回答 3查看 15.9K关注 0票数 35

我目前正在使用elasticsearch 0.9.19。我正在使用的机器有大约300 it的磁盘空间,其上的RAM大约为23 it。我已经分配了大约10 to的公羊弹性搜索。我的行动很紧张。他们在1000docs/s附近。我只在机器上运行弹性搜索,没有其他过程。文档大小不是很大。它们很小,只有不超过10个字段。弹性搜索只在一台机器上运行,只有一个碎片和零个副本。

当我发送1000 docs/s时,内存开始迅速增长。虽然我只为弹性搜索分配了10 GB内存,但仍然消耗了几乎21 GB的内存,最终弹性搜索过程导致堆空间不足。稍后,我需要清除OS缓存以释放所有内存。即使我停止发送弹性搜索,1000docs/s也不会自动清除内存。

例如,如果我在1000doc/s写操作中运行弹性搜索,那么我发现它很快就被用到了18 GB内存,后来当我将写操作减少到只有10个docs/s时,使用的内存仍然显示在18 GB左右。我认为这应该随着写操作的减少而减少。我使用大容量API来执行我的写操作,每次查询的大小为100个文档。当写入操作约为1000 data /s时,数据来自4台计算机。

这些是我在做最上面的时候得到的数字。

Mem: 24731664k,使用18252700k,免费6478964k,322492k缓冲区

交换: 4194296k总计,0k使用,4194296k免费,8749780 k缓存

PID用户PR NI VIRT RES SHR S %CPU %MEM TIME+命令

1004弹性材料20 0 10.7g 8.3g 10 m S 1 35.3 806:28.69 java

如果有人知道,请告诉我,这可能是什么原因。因为这个问题,我不得不停止申请。我想我错过了任何配置。我已经阅读了这里的弹性搜索的所有缓存相关文档,http://www.elasticsearch.org/guide/reference/index-modules/cache.html

我还尝试过使用cache来清除缓存,也尝试过使用flush。但没有得到任何改善。

提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2013-12-10 16:32:34

总结一下邮件列表线程上的答案:问题是Ruby客户端无法控制它的插入,而且Lucene内存的使用确实随着大量文档的增加而增加。我认为提交频率也可能存在问题:为了将新添加的文档刷新到磁盘上,不时提交是很重要的。行动小组还有问题吗?如果没有,你能贴出解决方案吗?

票数 3
EN

Stack Overflow用户

发布于 2020-06-25 05:27:37

我认为你的吞食对于集群能力来说太重了。然后数据就会堆放在内存中。您应该监视您的磁盘I/O,这应该是瓶颈。

那么,你应该:

  • 放慢摄入速度(您可以使用更强的队列,如Kafka、兔子MQ等.或者使用logstash的持久化队列系统)
  • 使用快速SSD硬盘来提高IO容量
  • 为更好的I/O并行性添加更多的节点(并调整索引的碎片)

作为小的优化,您可以通过以下方式稍微提高性能:

  • 增加refresh_interval。此操作消耗RAM,因此当您处于大量吞食节点时,避免刷新可能会有很大帮助
  • 如果您正在索引中进行第一次摄取,请尝试在摄入阶段移除所有副本,并在摄入后重新添加副本。
票数 3
EN

Stack Overflow用户

发布于 2022-02-14 13:27:30

另一件需要考虑的事情是弹性搜索的Ram /存储比应该

就是。1:16获得最佳性能。

这意味着-如果您使用64 gb的内存,那么存储将是1024 GB或1TB。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13551849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档