@@ -27,37 +27,39 @@ node ./lib/bin/log-upgrade
2727echo " starting cron.."
2828cron -f &
2929
30- get_cgroup_version () {
31- # The max memory calculation is different between cgroup v1 & v2
32- local cgroup_type
33- cgroup_type=$( stat -fc %T /sys/fs/cgroup/)
34- if [ " $cgroup_type " == " cgroup2fs" ]; then
35- echo " v2"
36- else
37- echo " v1"
38- fi
30+ is_cgroup2 () {
31+ [ -f /sys/fs/cgroup/cgroup.controllers ]
3932}
4033
4134get_memory_limit () {
42- local cgroup_version
43- cgroup_version=$( get_cgroup_version)
35+ local memtot fallback_memtot
36+
37+ if [ -r /proc/meminfo ]; then
38+ fallback_memtot=$( awk ' /MemTotal/ {print $2 * 1024}' /proc/meminfo)
39+ else
40+ fallback_memtot=0
41+ fi
4442
45- if [ " $cgroup_version " == " v2" ]; then
46- local memtot
47- memtot=$( cat /sys/fs/cgroup/memory.max)
48- if [ " $memtot " == " max" ]; then
49- # No cgroup memory limit; fallback to system's total memory
50- memtot=$( grep MemTotal /proc/meminfo | awk ' {print $2 * 1024}' )
43+ if is_cgroup2; then
44+ if [ -r /sys/fs/cgroup/memory.max ]; then
45+ memtot=$( cat /sys/fs/cgroup/memory.max)
46+ else
47+ memtot=" max"
48+ fi
49+ if [ " $memtot " = " max" ]; then
50+ memtot=$fallback_memtot
5151 fi
52- # Force memtot to be an integer (not scientific notation e+09)
53- printf " %.0f\n" " $memtot "
5452 else
5553 # cgroup v1
56- local memtot
57- memtot=$( cat /sys/fs/cgroup/memory/memory.limit_in_bytes)
58- # Force memtot to be an integer
59- printf " %.0f\n" " $memtot "
54+ if [ -r /sys/fs/cgroup/memory/memory.limit_in_bytes ]; then
55+ memtot=$( cat /sys/fs/cgroup/memory/memory.limit_in_bytes)
56+ else
57+ memtot=$fallback_memtot
58+ fi
6059 fi
60+
61+ # Force memtot to be an integer (not scientific notation e+09)
62+ printf " %.0f\n" " $memtot "
6163}
6264
6365determine_worker_count () {
0 commit comments