更改Solr的JVM参数

问题描述 投票:1回答:1

如何为dockerized Solr7指定其他类型的垃圾收集器?我的docker启动命令如下:

docker run -d --restart always --name solrcloud \
-p 8983:8983 --net host myrepo/my-fusion-solr-image:latest \
bin/solr -c -f -a -javaagent:/opt/newrelic/newrelic.jar \
-Dnewrelic.environment=dev -Ddisable.configEdit=true \
-z dev-fusion-zk.aws.myhost.net:2181/dev-fusion -m 30g

我正在尝试关注这篇文章:https://wiki.apache.org/solr/ShawnHeisey我应该在哪里指定-XX:+UseG1GC

docker solr garbage-collection jvm environment-variables
1个回答
2
投票

在Dockerfile for Solr图像中,添加以下步骤:

# Use G1GC garbage collector
# https://wiki.apache.org/solr/ShawnHeisey
RUN sed -i -e 's/^#GC_TUNE.*/GC_TUNE=" \
-XX:+UseG1GC \
-XX:+PerfDisableSharedMem \
-XX:+ParallelRefProcEnabled \
-XX:G1HeapRegionSize=8m \
-XX:MaxGCPauseMillis=250 \
-XX:InitiatingHeapOccupancyPercent=75 \
-XX:+UseLargePages \
-XX:+AggressiveOpts \
"/' /opt/solr/solr-$SOLR_VERSION/bin/solr.in.sh

Solr 7.2.1有这个文件bin/solr.in.sh看起来像是专门添加来覆盖bin/solr中的一些配置。在bin/solr.in.sh中有一条注释掉的线,以#GC_TUNE=开头。如果我们取消注释这一行,它将覆盖GC_TUNE中的bin/solr变量。

上面代码段中的sed命令用所需设置替换该行。请注意,sed在不同的环境中可能会有不同的行为,可能需要进行一些修改才能适用于您的情况。请在将其插入dockerfile之前进行测试。以上片段适用于centos。

© www.soinside.com 2019 - 2024. All rights reserved.