From c13a435a8ee30ab46d2cdae38504446e794dec7e Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Wed, 8 Jun 2022 15:08:39 +0000 Subject: Only enable -XX:+UseTransparentHugePages if heap is at least 2x hugepage size. --- vespabase/src/common-env.sh | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'vespabase/src/common-env.sh') diff --git a/vespabase/src/common-env.sh b/vespabase/src/common-env.sh index 7268a0a7edc..7b812d40fec 100755 --- a/vespabase/src/common-env.sh +++ b/vespabase/src/common-env.sh @@ -129,6 +129,35 @@ optionally_reduce_base_frequency() { fi } +get_hugepage_size_mb() { + while read -r name size rest + do + if [[ "$name" =~ ^Hugepagesize:$ ]] + then + hugepagesize="$size" + unit="${rest,,}" + break + fi + done < /proc/meminfo + if [[ "$unit" == "kb" ]]; then + hugepage_size_mb=$(($hugepagesize / 1024)) + else + echo "Failed extracting hugepage size from /proc/meminfo. Unknown unit($unit)" + exit 1 + fi + OUT=$hugepage_size_mb +} + +get_jvm_hugepage_settings() { + local heap_mb="$1" + get_hugepage_size_mb + sz_mb=$OUT + if (($sz_mb * 2 < $heap_mb)); then + options=" -XX:+UseTransparentHugePages" + fi + echo "$options" +} + populate_environment export LD_LIBRARY_PATH=$VESPA_HOME/lib64 -- cgit v1.2.3