我知道我可以将参数传递给 java 来限制使用的内存量,但这不会改变应用程序的行为。(假设我会得到内存不足异常或类似情况)
我想限制 solr 使用的内存量。我认为这就像设置一个配置选项一样简单,但到目前为止谷歌搜索都没有结果。
有什么想法吗?谢谢!
编辑:我只想指出,我理解内存使用量和执行速度之间会有权衡。在这种情况下,我愿意牺牲速度来减少内存占用。我也知道 solr 可能不支持调整此权衡的选项。
答案1
Solr 的内存限制是 JVM 的堆内存限制。没有单独的配置。
笔记这里OutOfMemoryError
表明 Solr 的内存使用情况确实会偶尔超出 JVM 的限制,但它会在触发时尝试通过释放堆空间来“纠正” 。
答案2
此页面包含大量有关如何减少/优化 Solr 内存消耗的有用信息。
http://wiki.apache.org/solr/SolrPerformanceFactors
但我将从这份文件中指出一件重要的事情:
索引字段的数量大大增加如下:
- 索引期间的内存使用情况
- 段合并时间
- 优化时间
- 索引大小
仔细检查以确保您没有在 schema.xml 文件中索引您永远不会搜索的字段。
另外,在该文档中,请查看页面底部的“影响内存使用的因素”。
希望这可以帮助,
-C