summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHÃ¥kon Hallingstad <hakon@verizonmedia.com>2019-06-24 10:29:57 +0200
committerGitHub <noreply@github.com>2019-06-24 10:29:57 +0200
commit9e793e7bdca0862bca330cb21fa5ebb1a81c8f21 (patch)
treeeb71365692749690447a99670bf06bd441515d9b
parent2da125f0babd1aa4314811e8e80ec4e127786102 (diff)
parent657f8e2f1c7c790547a346ae991cc13574277227 (diff)
Merge pull request #9879 from vespa-engine/freva/avoid-VESPA_TOTAL_MEMORY
Get available limit from cgroups if set
-rwxr-xr-xcontainer-disc/src/main/sh/vespa-start-container-daemon.sh5
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java1
2 files changed, 6 insertions, 0 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 65826e650c4..53b1e54dda5 100755
--- a/container-disc/src/main/sh/vespa-start-container-daemon.sh
+++ b/container-disc/src/main/sh/vespa-start-container-daemon.sh
@@ -71,6 +71,11 @@ configure_memory() {
available="$VESPA_TOTAL_MEMORY_MB"
else
available=`free -m | grep Mem | tr -s ' ' | cut -f2 -d' '`
+ if hash cgget 2>/dev/null; then
+ available_cgroup_bytes=$(cgget -nv -r memory.limit_in_bytes /)
+ available_cgroup=$((available_cgroup_bytes >> 20))
+ available=$((available > available_cgroup ? available_cgroup : available))
+ fi
fi
jvm_heapsize=$((available * jvm_heapSizeAsPercentageOfPhysicalMemory / 100))
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 1a993b2687c..d8d6b4781c8 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
@@ -118,6 +118,7 @@ public class DockerOperationsImpl implements DockerOperations {
if (minMainMemoryAvailableMb > 0) {
// VESPA_TOTAL_MEMORY_MB is used to make any jdisc container think the machine
// only has this much physical memory (overrides total memory reported by `free -m`).
+ // TODO: Remove after all tenants are running > 7.67
command.withEnvironment("VESPA_TOTAL_MEMORY_MB", Long.toString(minMainMemoryAvailableMb));
}