我已經繼承了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或有我需要注意的事情?
感謝
硅