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"