我已经继承了Solr配置,并且在进行一些更新之前做了一些理智检查,我很关心内存设置。Solr JVM内存和MMap目录
系统有2个分片在2个Ubuntu 64位节点上分配索引,每个节点有32个CPU核心和132GB RAM,我们每天分批索引500k个文件,每10分钟分批一次,这些是对现有内容的更新,可能是5-10%。目前,合并因子设置为2和提交设置为:
<autoCommit>
<maxTime>60000</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
<autoSoftCommit>
<maxTime>900000</maxTime>
</autoSoftCommit>
目前,每个节点拥有约25M的文档与45GB的索引规模,我们修剪数据每隔几个星期因此它从来没有得到每个节点远高于35M的文档。
在阅读时我看到了一个建议,我们应该使用MMapDirectory,目前它被设置为NRTCachingDirectoryFactory。但是目前JVM配置为-Xmx131072m,而对于MMapDirectory,我读过你应该为JVM使用较少的内存,这样就有更多的操作系统缓存可用。
望着在JVM内存使用仪表盘我看到:
不知道我理解的3个波段,假设127.81是最大,深灰色正在使用的时刻和浅灰色被分配为以前使用但尚未清理?
我想知道这是否会帮助我知道将Xmx更改为多少值,也就是说基于浅灰色的64GB是多少值?
此外,一旦我改变了最大堆大小,它是一个简单的情况下更改配置使用MMapDirectory或有我需要注意的事情?
感谢
硅