I'm using Solr 9.9.0 and I recently increased the server RAM from 16 GB to 32 GB, as well as the JVM heap memory to 16 GB. The issue I'm facing is that under high load, both the Solr 9.9.0 UI dashboard and my search application become slow or go down completely.
I have only 300,000 records and a single core, which is being used by many search applications. I have also modified some configurations in solrconfig.xml and solr.in.sh. I previously set up a leader–follower configuration, but I have currently stopped replication. However, the issue still persists. I am using CentOS 9.
solrconfig.xml:
<ramBufferSizeMB>256</ramBufferSizeMB>
<autoCommit>
<maxTime>2000</maxTime>
<!-- 30 seconds instead of 15 -->
<openSearcher>false</openSearcher>
</autoCommit>
<autoSoftCommit>
<maxTime>15000</maxTime>
<!-- 5 seconds instead of 3 -->
</autoSoftCommit>
<cache name="filterCache" class="solr.FastLRUCache" size="4096" initialSize="1024" autowarmCount="512"/>
<cache name="queryResultCache" class="solr.LRUCache" size="4096" initialSize="512" autowarmCount="512"/>
<cache name="documentCache" class="solr.LRUCache" size="2048" initialSize="512" autowarmCount="256"/>
<cache name="perSegFilter" class="solr.CaffeineCache" size="10" initialSize="0" autowarmCount="0" regenerator="solr.NoOpRegenerator"/>
<cache name="fieldValueCache" class="solr.FastLRUCache" size="1024"/>
solr.in.sh
SOLR_HEAP="16g"
# Remove duplicate SOLR_OPTS and update GC settings
SOLR_OPTS="$SOLR_OPTS -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1024m"
GC_TUNE="-XX:+UseG1GC \
-XX:+PerfDisableSharedMem \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=250 \
-XX:+UseLargePages \
-XX:+AlwaysPreTouch \
-XX:+ExplicitGCInvokesConcurrent"
SOLR_OPTS="$SOLR_OPTS $GC_TUNE"
