solr jvm参数内存自动计算

solr默认jvm的堆内存只有512M 在生产环境中这个参数是不满足我们的需求的,手动去调整太麻烦了,可以写一些脚本根据物理内存的大小自动调整

这样就省事很多,在启动solr的时候会自动进行加载初始内存,直接修改solr.in.sh文件,在文件中加入下面的代码,重启服务就行

注意:需要用到bc,如果机器上没有安装bc的请使用yum  install   bc -y 进行安装

MEM_RATIO=0.5  #这个比列根据机器业务情况自行调整
system_memory_mb_total=$(free -m|grep Mem|awk '{print $2}')

java_memory_mb_total=$(echo "scale=1; $system_memory_mb_total * ${MEM_RATIO:-0.8}" | bc)

echo $java_memory_mb_total | grep -q '\.'

MATCH_STATUS=$?

if [[ $MATCH_STATUS -eq 0 ]] ; then
  jvm_memory_mb_total=$(echo $java_memory_mb_total | cut -d'.' -f1)
else
  jvm_memory_mb_total=$java_memory_mb_total
fi


SOLR_HEAP="${jvm_memory_mb_total}m"

  

posted @ 2022-01-07 17:23  凉生墨客  阅读(463)  评论(0编辑  收藏  举报