Skip to content

Instantly share code, notes, and snippets.

@radamuz
Forked from qrtt1/setenv.sh
Last active September 24, 2024 07:26
Show Gist options
  • Select an option

  • Save radamuz/7d4c23a06a003d8f062e98bb2bd9cd69 to your computer and use it in GitHub Desktop.

Select an option

Save radamuz/7d4c23a06a003d8f062e98bb2bd9cd69 to your computer and use it in GitHub Desktop.
tomcat's setenv.sh for dynamic set max-memory.
memory_estimate_script=$(mktemp /tmp/tmp.XXXXXXXXXX)
cat << EOF > $memory_estimate_script
#!/bin/bash
# Verifica si existe el archivo /proc/meminfo
if [ ! -f /proc/meminfo ]; then
echo 1024
exit 0
fi
# Lee la primera línea del archivo /proc/meminfo que contiene "MemTotal"
line=\$(grep -m 1 "MemTotal" /proc/meminfo)
# Verifica si la línea contiene la palabra "MemTotal" y "kB"
if [[ "\$line" == *"MemTotal"* && "\$line" == *"kB"* ]]; then
# Extrae el valor numérico de la memoria
memory_kb=\$(echo \$line | grep -oP '\d+')
# Si se pudo extraer el valor
if [ -n "\$memory_kb" ]; then
# Calcula el 90% de la memoria en kB y conviértela a MB
memory_mb=\$(echo "(\$memory_kb * 0.9) / 1024" | bc)
echo "\$memory_mb"
else
echo 1024
fi
else
echo 1024
fi
EOF
memory_max_mb=$(bash $memory_estimate_script)
export JAVA_HOME=/opt/java
export JAVA_OPTS="-Xms512m -Xmx"$memory_max_mb"m -XX:+UseParallelGC -Duser.timezone=Asia/Taipei -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true "
echo "JAVA_OPTS "$JAVA_OPTS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment