diff --git a/bin/rss-env.sh b/bin/rss-env.sh index 14824273a1..b46ec3af16 100644 --- a/bin/rss-env.sh +++ b/bin/rss-env.sh @@ -31,3 +31,4 @@ XMX_SIZE="80g" # Shuffle Server JVM XMX size # RSS_PID_DIR, Where the pid file is stored (Default: ${RSS_HOME}) # RSS_LOG_DIR, Where log files are stored (Default: ${RSS_HOME}/logs) # RSS_IP, IP address Shuffle Server binds to on this node (Default: first non-loopback ipv4) +# MAX_DIRECT_MEMORY_SIZE Shuffle Server JVM off heap memory size (Default: not set) diff --git a/bin/start-shuffle-server.sh b/bin/start-shuffle-server.sh index e0b979e9a8..829a20db2f 100644 --- a/bin/start-shuffle-server.sh +++ b/bin/start-shuffle-server.sh @@ -66,9 +66,15 @@ JAVA_LIB_PATH="-Djava.library.path=$HADOOP_HOME/lib/native" echo "class path is $CLASSPATH" +MAX_DIRECT_MEMORY_OPTS="" +if [ -n "$MAX_DIRECT_MEMORY_SIZE" ]; then + MAX_DIRECT_MEMORY_OPTS="-XX:MaxDirectMemorySize=$MAX_DIRECT_MEMORY_SIZE" +fi + JVM_ARGS=" -server \ -Xmx${XMX_SIZE} \ -Xms${XMX_SIZE} \ + ${MAX_DIRECT_MEMORY_OPTS} \ -XX:+UseG1GC \ -XX:MaxGCPauseMillis=200 \ -XX:ParallelGCThreads=20 \