You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
2.0 KiB
Bash

#! /bin/bash
BASE_DIR=$(dirname $0)/..
CLASSPATH=$(echo $BASE_DIR/lib/*.jar | tr ' ' ':')
# get java version
JAVA="$JAVA_HOME/bin/java"
JAVA_VERSION=$($JAVA -version 2>&1 | awk -F\" '/version/{print $2}')
echo "java version:$JAVA_VERSION path:$JAVA"
MEMORY=$(cat /proc/meminfo |grep 'MemTotal' |awk -F : '{print $2}' |awk '{print $1}' |sed 's/^[ \t]*//g')
echo -e "Total Memory:\n${MEMORY} KB\n"
if [[ $JAVA_VERSION =~ "1.8" ]]; then
echo "Use java version 1.8 opt"
if (($MEMORY <= 5000000));then
JAVA_OPT_1="-server -Xms2000m -Xmx2000m -Xmn1000m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -Xss256k -XX:MaxDirectMemorySize=1024m "
elif (($MEMORY <= 9000000));then
JAVA_OPT_1="-server -Xms3500m -Xmx3500m -Xmn1500m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -Xss256k -XX:MaxDirectMemorySize=1536m "
elif (($MEMORY <= 17000000));then
JAVA_OPT_1="-server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -Xss256k -XX:MaxDirectMemorySize=4g "
elif (($MEMORY <= 33000000));then
JAVA_OPT_1="-server -Xms5g -Xmx5g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -Xss256k -XX:MaxDirectMemorySize=8g "
else
JAVA_OPT_1="-server -Xms6g -Xmx6g -Xmn3g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -Xss256k -XX:MaxDirectMemorySize=16g "
fi
JAVA_OPT_2="-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSParallelRemarkEnabled -XX:+UseCMSInitiatingOccupancyOnly -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:+DisableExplicitGC"
else
echo "Error, not support java version : $JAVA_VERSION"
exit 1
fi
JAVA_OPTS="${JAVA_OPT_1} ${JAVA_OPT_2}"
JAVA_CONFIG=$(mktemp XXXXXXXX)
cat <<EOF | xargs echo > $JAVA_CONFIG
${JAVA_OPTS}
-cp $CLASSPATH
com.alipay.sofa.jraft.benchmark.BenchmarkBootstrap
server
$1
$2
EOF
JAVA_CONFIG=$(cat $JAVA_CONFIG | xargs echo)
echo $JAVA_CONFIG
JAVA="$JAVA_HOME/bin/java"
HOSTNAME=`hostname`
nohup $JAVA $JAVA_CONFIG >> server_stdout 2>&1 &