gpt4 book ai didi

java - Solr - Java 内存不足

转载 作者:行者123 更新时间:2023-11-30 09:28:25 29 4
gpt4 key购买 nike

我有一个应用程序创建了一个相当大的 Solr 3.6 索引,大约。 300GB 1B 文档每天分成 10 个核心。索引效果很好,我正在使用循环算法在核心之间平均分配文档。搜索对我来说也很有效,直到返回结果集超过 100K+ 个文档。

此时,我收到返回的 java 错误:OutOfMemoryError 或 SolrException:解析错误

我的搜索很简单,没有使用通配符或排序或分面搜索,但它似乎在返回之前缓冲了整个结果集。我服务器上的物理内存是 256G,我运行的是 Solaris 10。我使用的是 32 位的默认 java,但也尝试过 32 位和 64 位的 java 7。

当我使用 64 位 java 时,我可以使用 –Xmx 选项将最大内存增加到足以返回 1M+ 文档,但实际上它只需要一个 Solr 进程所需的所有内存。

除了用数百个小索引重新设计我的应用程序之外,对于如何在没有大量 RAM 的情况下从 Solr 中获取大型搜索结果集,有没有人有任何建议?

最佳答案

您可以尝试禁用各种 caches (例如 filterCachequeryResultCachedocumentCache)。这可能会损害性能,但可能会提供一些喘息的空间。

如果您的 Solr HTTP/XML 响应很大,您可以考虑 placing Solr under the same JVM甚至使用原始 Lucene 来节省 XML 开销。

除此之外,恐怕您还需要研究分片。

关于java - Solr - Java 内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14047016/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com