mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-06 04:58:50 +00:00
a3d5381392
We don't rely upon GC to cleanup mappedbytebuffers, we unmap them explicitly on close in lucene. But the JDK has crazy loops with explicit GCs in exceptional cases to try to force unmapping. In general we don't want any of our code or library code calling this method: so its banned in forbidden-apis as well.
68 lines
2.1 KiB
Bash
68 lines
2.1 KiB
Bash
#!/bin/sh
|
|
|
|
ES_CLASSPATH=$ES_CLASSPATH:$ES_HOME/lib/${project.build.finalName}.jar:$ES_HOME/lib/*:$ES_HOME/lib/sigar/*
|
|
|
|
if [ "x$ES_MIN_MEM" = "x" ]; then
|
|
ES_MIN_MEM=256m
|
|
fi
|
|
if [ "x$ES_MAX_MEM" = "x" ]; then
|
|
ES_MAX_MEM=1g
|
|
fi
|
|
if [ "x$ES_HEAP_SIZE" != "x" ]; then
|
|
ES_MIN_MEM=$ES_HEAP_SIZE
|
|
ES_MAX_MEM=$ES_HEAP_SIZE
|
|
fi
|
|
|
|
# min and max heap sizes should be set to the same value to avoid
|
|
# stop-the-world GC pauses during resize, and so that we can lock the
|
|
# heap in memory on startup to prevent any of it from being swapped
|
|
# out.
|
|
JAVA_OPTS="$JAVA_OPTS -Xms${ES_MIN_MEM}"
|
|
JAVA_OPTS="$JAVA_OPTS -Xmx${ES_MAX_MEM}"
|
|
|
|
# new generation
|
|
if [ "x$ES_HEAP_NEWSIZE" != "x" ]; then
|
|
JAVA_OPTS="$JAVA_OPTS -Xmn${ES_HEAP_NEWSIZE}"
|
|
fi
|
|
|
|
# max direct memory
|
|
if [ "x$ES_DIRECT_SIZE" != "x" ]; then
|
|
JAVA_OPTS="$JAVA_OPTS -XX:MaxDirectMemorySize=${ES_DIRECT_SIZE}"
|
|
fi
|
|
|
|
# reduce the per-thread stack size
|
|
JAVA_OPTS="$JAVA_OPTS -Xss256k"
|
|
|
|
# set to headless, just in case
|
|
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
|
|
|
|
# Force the JVM to use IPv4 stack
|
|
if [ "x$ES_USE_IPV4" != "x" ]; then
|
|
JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
|
|
fi
|
|
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+UseParNewGC"
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC"
|
|
|
|
JAVA_OPTS="$JAVA_OPTS -XX:CMSInitiatingOccupancyFraction=75"
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSInitiatingOccupancyOnly"
|
|
|
|
# GC logging options
|
|
if [ "x$ES_USE_GC_LOGGING" != "x" ]; then
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails"
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCTimeStamps"
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+PrintClassHistogram"
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+PrintTenuringDistribution"
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCApplicationStoppedTime"
|
|
JAVA_OPTS="$JAVA_OPTS -Xloggc:/var/log/elasticsearch/gc.log"
|
|
fi
|
|
|
|
# Causes the JVM to dump its heap on OutOfMemory.
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError"
|
|
# The path to the heap dump location, note directory must exists and have enough
|
|
# space for a full heap dump.
|
|
#JAVA_OPTS="$JAVA_OPTS -XX:HeapDumpPath=$ES_HOME/logs/heapdump.hprof"
|
|
|
|
# Disables explicit GC
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC"
|