限制solr(不是java)使用一定量的内存

我知道我可以传递参数给java来限制使用的内存量,但是这不会改变应用程序的行为。 (假设我会得到一个内存不足的例外或类似的)

我想限制solr使用的内存量。 我假设这是一样简单的设置一个单一的configuration选项,但谷歌search到目前为止没有结果。

有任何想法吗? 谢谢!

编辑:我只是想说明,我明白内存使用率和执行速度之间会有一个折衷。 在这种情况下,我愿意牺牲速度来减less内存占用。 我也明白,solr可能不支持调整这种权衡的选项。

Solr的内存限制是JVM的堆内存限制。 没有单独的configuration。

这里的注释表明,Solr的内存使用情况确实会超出JVM的限制,但它会尝试通过释放OutOfMemoryError时释放堆空间来“做正确的”。

本页面提供了大量关于如何减less/优化Solr内存消耗的有用信息。

http://wiki.apache.org/solr/SolrPerformanceFactors

但是我会从这个文件中指出一件重要的事情:

索引字段的数量大大增加了以下几点:

  • 索引过程中的内存使用情况
  • 段合并时间
  • 优化时间
  • 索引大小

仔细检查,以确保您不会索引在schema.xml文件中永远不会search的字段。

另外,在该文档中,请查看页面底部的“影响内存使用的因素”。

希望这可以帮助,

-C