我目前正在使用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。但没有得到任何改善。
提前谢谢。
发布于 2013-12-10 16:32:34
总结一下邮件列表线程上的答案:问题是Ruby客户端无法控制它的插入,而且Lucene内存的使用确实随着大量文档的增加而增加。我认为提交频率也可能存在问题:为了将新添加的文档刷新到磁盘上,不时提交是很重要的。行动小组还有问题吗?如果没有,你能贴出解决方案吗?
发布于 2020-06-25 05:27:37
我认为你的吞食对于集群能力来说太重了。然后数据就会堆放在内存中。您应该监视您的磁盘I/O,这应该是瓶颈。
那么,你应该:
作为小的优化,您可以通过以下方式稍微提高性能:
发布于 2022-02-14 13:27:30
另一件需要考虑的事情是弹性搜索的Ram /存储比应该
就是。1:16获得最佳性能。
这意味着-如果您使用64 gb的内存,那么存储将是1024 GB或1TB。
https://stackoverflow.com/questions/13551849
复制相似问题