summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xcontainer-disc/src/main/sh/vespa-start-container-daemon.sh9
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java2
2 files changed, 9 insertions, 2 deletions
diff --git a/container-disc/src/main/sh/vespa-start-container-daemon.sh b/container-disc/src/main/sh/vespa-start-container-daemon.sh
index 3afefd6f86d..e48eb82fd9a 100755
--- a/container-disc/src/main/sh/vespa-start-container-daemon.sh
+++ b/container-disc/src/main/sh/vespa-start-container-daemon.sh
@@ -65,8 +65,13 @@ configure_memory() {
consider_fallback jvm_baseMaxDirectMemorySize 75
consider_fallback jvm_directMemorySizeCache 0
- if (( jvm_heapSizeAsPercentageOfPhysicalMemory > 0 && jvm_heapSizeAsPercentageOfPhysicalMemory < 100 )); then
- available=`free -m | grep Mem | tr -s ' ' | cut -f2 -d' '`
+ if (( jvm_heapSizeAsPercentageOfPhysicalMemory > 0 && jvm_heapSizeAsPercentageOfPhysicalMemory > 0 )) || test "$TOTAL_MEMORY_MB" != ""; then
+ if test "$TOTAL_MEMORY_MB" != ""; then
+ available="$TOTAL_MEMORY_MB"
+ else
+ available=`free -m | grep Mem | tr -s ' ' | cut -f2 -d' '`
+ fi
+
jvm_heapsize=$[available * jvm_heapSizeAsPercentageOfPhysicalMemory / 100]
if (( jvm_heapsize < 1024 )); then
jvm_heapsize=1024
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java
index bfd46e1453e..7e9815b54bb 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java
@@ -304,6 +304,8 @@ public class DockerOperationsImpl implements DockerOperations {
long minMainMemoryAvailableMb = (long) (nodeSpec.minMainMemoryAvailableGb.get() * 1024);
if (minMainMemoryAvailableMb > 0) {
command.withMemoryInMb(minMainMemoryAvailableMb);
+ // TOTAL_MEMORY_MB should match what's reported as total memory by `free -m`.
+ command.withEnvironment("TOTAL_MEMORY_MB", Long.toString(minMainMemoryAvailableMb));
}
}