Solr JVM内存和MMapDirectory

时间:2014-10-03 09:05:40

标签: ubuntu memory solr jvm

我已经继承了Solr配置并在进行一些更新之前进行了一些健全性检查,我关注内存设置。

系统在2个分区中有1个索引,分为2个Ubuntu 64位节点,每个节点有32个CPU内核和132GB内存,我们每天分成大约500k个文件,每天分批分发,每10分钟一次,其中一部分是对现有内容的更新,可能是5-10%。目前MergeFactor设置为2,提交设置为:

<autoCommit>
    <maxTime>60000</maxTime>
    <openSearcher>false</openSearcher>
</autoCommit>
<autoSoftCommit>
    <maxTime>900000</maxTime>
</autoSoftCommit>

目前,每个节点都有大约25M个文档,索引大小为45GB,我们每隔几周就会删除一次数据,因此每个节点的数据永远不会超过35M文档。

在阅读时,我看到一个建议我们应该使用MMapDirectory,目前它已设置为NRTCachingDirectoryFactory。但是目前JVM配置为-Xmx131072m,对于MMapDirectory我已经读过,你应该为JVM使用更少的内存,以便有更多可用于操作系统缓存。

查看JVM内存使用情况中的仪表板,我看到:

enter image description here

不确定我理解3个乐队,假设127.81是Max,此刻正在使用深灰色,并且浅灰色是按原先分配使用但尚未清理过的?

我试图了解这是否会帮助我知道将Xmx更改为多少是一个很好的价值,即根据浅灰色说64GB?

此外,一旦我更改了最大堆大小,这是一个简单的更改配置以使用MMapDirectory的情况,还是我需要注意的事项?

由于

的Si

1 个答案:

答案 0 :(得分:2)

也许迟到了。但总比没有好。 ; - )

图表告诉您,您的SOLR-Instance使用20G,最多使用68G并且可以使用128G堆。 -Xmx的合理值可以是32G。 有关MMapDirectoy的详细信息,请参阅use-lucenes-mmapdirectory-on-64bit