From 1dc5d55963d86c5344e54cc8c262f6df39ce4b90 Mon Sep 17 00:00:00 2001 From: Giles2000 <65489591+Giles2000@users.noreply.github.com> Date: Mon, 14 Feb 2022 16:17:37 +0800 Subject: [PATCH] memcg_stress_test.sh: fix Available memory formula MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In NUMA architecture, Sometimes too many node nodes will cause the system to retain too much free memory. Make the value of "memFree" in the /proc /meminfo file greater than the real available value. This resulted in memory over allocation (OOM) for this test. For example, this is a arm server‘s content of /proc/meminfo which has 128 cpus and 16 nodes : # cat /proc/meminfo MemTotal: 536018688 kB MemFree: 512151936 kB MemAvailable: 472947264 kB Buffers: 8384 kB Cached: 1789376 kB SwapCached: 0 KB Active: 1924288 kB Inactive: 1445888 kB Active(anom): 1608832 kB Inactive(amon) 40512 kB Active(file): 315456 kB Inactive(file): 1405376 kB Unevictable: 31744 KB .... Therefore, it is suggested to change the "memFree" in the calculation formula to "memavailable". Of course, this will give the system more memory pressure, but also the script reserve half of the swap to alleviate this problem. --- testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh b/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh index c43d72116be..d4710813bac 100755 --- a/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh +++ b/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh @@ -29,7 +29,7 @@ setup() echo 3 > /proc/sys/vm/drop_caches sleep 2 - local mem_free=`cat /proc/meminfo | grep MemFree | awk '{ print $2 }'` + local mem_free=`cat /proc/meminfo | grep MemAvailable | awk '{ print $2 }'` local swap_free=`cat /proc/meminfo | grep SwapFree | awk '{ print $2 }'` local pgsize=`tst_getconf PAGESIZE`