Solr总是使用超过90%的物理内存

时间:2014-03-03 14:28:23

标签: solr

我有300000个文件存储在solr索引中。并使用 4GB RAM 用于solr服务器。但它消耗的物理内存超过 90%。所以我将我的数据转移到了一台具有 16 GB RAM 的新服务器。 solr再次消耗超过 90%的内存。我不知道如何解决这个问题。我使用默认的MMapDirectory和solr版本4.2.0。如果您有任何解决方案或原因,请解释我。

2 个答案:

答案 0 :(得分:10)

MMapDirectory尝试尽可能多地使用OS内存(OS Cache),这是正常行为,它会尝试将整个索引加载到内存中(如果可用)。事实上,这是一件好事。由于这些内存可用,它会尝试使用它。如果同一台机器中的另一个应用程序需要更多,OS将为其发布它。这就是Solr / Lucene查询速度快的原因之一,因为对服务器的大多数调用都会结束内存(取决于内存大小)而不是磁盘。

JVM内存是一个不同的东西,它可以被控制,只有工作查询响应对象和某些缓存条目使用JVM内存。因此可以根据数字请求和缓存条目配置JVM大小。

答案 1 :(得分:2)

调用jvm时你使用的是什么-Xmx值?如果您没有使用显式值,jvm将根据机器功能设置一个。

一旦你给Solr提供了最大量的堆,solr可能会使用它所有的,如果需要的话,它就是这样的。如果你在调用jvm时限制为2GB使用-Xmx = 2000m。不确定你的文档有多大,但300k文档将被认为是一个小的索引。