Skip to content

Commit a5361c0

Browse files
committed
BUG: Handle more Cgroups v1/v2 memory limit caveats
1 parent 3559382 commit a5361c0

File tree

2 files changed

+12
-4
lines changed
  • fs/etc/s6-overlay/s6-rc.d
    • haproxy
    • ingress-controller

2 files changed

+12
-4
lines changed

fs/etc/s6-overlay/s6-rc.d/haproxy/run

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
#!/command/with-contenv sh
22

3-
MEMLIMIT=$(free -m | awk '/Mem:/ {print int($2 * 2 / 3)}')
3+
MEMLIMIT=$(free -m | awk '/Mem:/ {printf "%d\n", int($2 * 2 / 3)}')
44

55
CG_LIMIT_FILE="/sys/fs/cgroup/memory/memory.limit_in_bytes"
66
if [ -f "/sys/fs/cgroup/cgroup.controllers" ]; then
77
CG_LIMIT_FILE="/sys/fs/cgroup/memory.max"
88
fi
99

1010
if [ -r "${CG_LIMIT_FILE}" ]; then
11-
MEMLIMIT_CG=$(awk '{print int($1 / 1024 / 1024 * 2 / 3)}' "${CG_LIMIT_FILE}")
11+
if grep -q '^max$' "${CG_LIMIT_FILE}"; then
12+
MEMLIMIT_CG="${MEMLIMIT}"
13+
else
14+
MEMLIMIT_CG=$(awk '{printf "%d\n", int($1 / 1024 / 1024 * 2 / 3)}' "${CG_LIMIT_FILE}")
15+
fi
1216

1317
if [ "${MEMLIMIT_CG}" -gt 0 ]; then
1418
if [ "${MEMLIMIT_CG}" -lt "${MEMLIMIT}" ]; then

fs/etc/s6-overlay/s6-rc.d/ingress-controller/run

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
#!/command/with-contenv sh
22

3-
MEMLIMIT=$(free -m | awk '/Mem:/ {print int($2 / 3)}')
3+
MEMLIMIT=$(free -m | awk '/Mem:/ {printf "%d\n", int($2 / 3)}')
44

55
CG_LIMIT_FILE="/sys/fs/cgroup/memory/memory.limit_in_bytes"
66
if [ -f "/sys/fs/cgroup/cgroup.controllers" ]; then
77
CG_LIMIT_FILE="/sys/fs/cgroup/memory.max"
88
fi
99

1010
if [ -r "${CG_LIMIT_FILE}" ]; then
11-
MEMLIMIT_CG=$(awk '{print int($1 / 1024 / 1024 / 3)}' "${CG_LIMIT_FILE}")
11+
if grep -q '^max$' "${CG_LIMIT_FILE}"; then
12+
MEMLIMIT_CG="${MEMLIMIT}"
13+
else
14+
MEMLIMIT_CG=$(awk '{printf "%d\n", int($1 / 1024 / 1024 / 3)}' "${CG_LIMIT_FILE}")
15+
fi
1216

1317
if [ "${MEMLIMIT_CG}" -gt 0 ]; then
1418
if [ "${MEMLIMIT_CG}" -lt "${MEMLIMIT}" ]; then

0 commit comments

Comments
 (0)