从 solr 4.0 迁移到 solr6.0 时出现 solr 设置问题。
面临的问题:我的 CPU 消耗达到不可接受的水平。IE。solr4.0 上的负载在 6 到 10 之间,而 solr 6 上的负载达到 100,因为它的生产我很快回滚。
我的 Solr4 设置
- Running on tomcat
- JVM Memory : 16GB
- 24 core cpu
- JVM settings :
- JVM Runtime Java HotSpot(TM) 64-Bit Server VM (24.45-b08)
- Processors 24
- Args : Paths mentioned here
**My Solr6 setting**
- Running on jetty
- JVM Memory : 20GB
- 32 core cpu
- JVM settings :
- Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 1.8.0_45 25.45-b02
- Processors 32
- Args
- DSTOP.KEY=solrrocks
- DSTOP.PORT=7983
- Djetty.home=/usr/local/solr-6.4.1/server-Djetty.port=8983
- Dlog4j.configuration=file:/usr/local/solr-6.4.1/example/resources/log4j.properties
- Dsolr.install.dir=/usr/local/solr-6.4.1-Dsolr.log.dir=/usr/local/solr-6.4.1/example/techproducts/solr/../logs
- Dsolr.log.muteconsole
- Dsolr.solr.home=/usr/local/solr-6.4.1/example/techproducts/solr-Duser.timezone=US/Eastern
- XX:+AggressiveOpts
- XX:+CMSParallelRemarkEnabled
- XX:+CMSScavengeBeforeRemark
- XX:+ParallelRefProcEnabled
- XX:+PrintGCApplicationStoppedTime
- XX:+PrintGCDateStamps
- XX:+PrintGCDetails
- XX:+PrintGCTimeStamps
- XX:+PrintHeapAtGC
- XX:+PrintTenuringDistribution
- XX:+UseCMSInitiatingOccupancyOnly
- XX:+UseConcMarkSweepGC
- XX:+UseGCLogFileRotation
- XX:-UseSuperWord
- XX:CMSFullGCsBeforeCompaction=1
- XX:CMSInitiatingOccupancyFraction=70
- XX:CMSMaxAbortablePrecleanTime=6000
- XX:CMSTriggerPermRatio=80
- XX:GCLogFileSize=20M
- XX:MaxTenuringThreshold=8
- XX:NewRatio=2
- XX:NumberOfGCLogFiles=9
- XX:OnOutOfMemoryError=/usr/local/solr-6.4.1/bin/oom_solr.sh 8983 /usr/local/solr-6.4.1/example/techproducts/solr/../logs
- XX:PretenureSizeThreshold=64m
- XX:SurvivorRatio=15
- XX:TargetSurvivorRatio=90-Xloggc:/usr/local/solr-6.4.1/example/techproducts/solr/../logs/solr_gc.log-Xms21g-Xmx21g-Xss256k-verbose:gc
我在找什么
- 我猜它与码头的 gc 设置有关,因为我不是码头专家(java8)。请帮助如何调整这些设置。另外我应该如何选择这些值或如何调试这些问题?