mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-05 20:48:22 +00:00
168238dab6
Many scripts are used to start/stop and install/uninstall elasticsearch. These scripts share a lot of configuration properties like directory paths, max value for a setting, default user etc. Most of the values are identical but some of them are different depending of the platform (Debian-based or Redhat-based OS), depending of the way elasticsearch is started (shell script, systemd, sysv-init...) or the way it is installed (zip, rpm, deb...). Today the values are duplicated in multiple places, making it difficult to maintain the scripts or to update a value. This pull request make this more uniform: values used in scripts must be defined in a common packaging.properties file. Each value can be overridden in another specific packaging.properties file for Debian or Redhat. All startup and installation scripts are filtered with the common then the custom packaging.properties files before being packaged as a zip/tar.gz/rpm/dpkf archive.
71 lines
2.3 KiB
Bash
71 lines
2.3 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=${packaging.elasticsearch.heap.min}
|
|
fi
|
|
if [ "x$ES_MAX_MEM" = "x" ]; then
|
|
ES_MAX_MEM=${packaging.elasticsearch.heap.max}
|
|
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
|
|
|
|
# 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 [ -n "$ES_GC_LOG_FILE" ]; 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:$ES_GC_LOG_FILE\""
|
|
|
|
# Ensure that the directory for the log file exists: the JVM will not create it.
|
|
mkdir -p "`dirname \"$ES_GC_LOG_FILE\"`"
|
|
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"
|
|
|
|
# Ensure UTF-8 encoding by default (e.g. filenames)
|
|
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"
|