From d0852dd100ad0674d000dbb2fa62b830df5678d1 Mon Sep 17 00:00:00 2001 From: shengaoya Date: Sat, 11 May 2024 15:13:22 +0800 Subject: [PATCH] The fixed memory page size value of 4 in the rss calculation formula is not appropriate, modify it to obtain the memory page size Signed-off-by: shengaoya --- source/tools/detect/mem/oomcheck/oomcheck.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/source/tools/detect/mem/oomcheck/oomcheck.py b/source/tools/detect/mem/oomcheck/oomcheck.py index d50e4a3c..d7a3efb7 100644 --- a/source/tools/detect/mem/oomcheck/oomcheck.py +++ b/source/tools/detect/mem/oomcheck/oomcheck.py @@ -14,6 +14,7 @@ import json import argparse import getopt import traceback +import resource OOM_REASON_CGROUP = 'cgroup memory limit' OOM_REASON_PCGROUP = 'parent cgroup memory limit' @@ -560,7 +561,9 @@ def oom_check_score(oom, oom_result): if (res_total['cnt']) > 2 and (res_total['rss']*0.8 > res['rss']): many = True if res['task'] == res_total['task'] or many == False: - return True, ',process:%s(%s) memory usage: %dKB,oom_score_adj:%s\n'%(res['task'],res['pid'],res['rss']*4,res['score']) + page_size = resource.getpagesize() + page_size = int(page_size/1024) + return True, ',process:%s(%s) memory usage: %dKB,oom_score_adj:%s\n'%(res['task'],res['pid'],res['rss']*page_size,res['score']) return False, "\n" @@ -568,12 +571,14 @@ def oom_check_dup(oom, oom_result): res = oom_result['max'] res_total = oom_result['max_total'] summary = '\n' - if (res_total['rss']*4 > oom['killed_task_mem']*1.5) and (res_total['cnt'] > 2): + page_size = resource.getpagesize() + page_size = int(page_size/1024) + if (res_total['rss']*page_size > oom['killed_task_mem']*1.5) and (res_total['cnt'] > 2): oom['root'] = 'fork' - summary = ',%d process:%s total memory usage: %dKB\n'%(res_total['cnt'],res_total['task'],res_total['rss']*4) + summary = ',%d process:%s total memory usage: %dKB\n'%(res_total['cnt'],res_total['task'],res_total['rss']*page_size) oom['json']['fork_max_task'] = res_total['task'] oom['json']['fork_max_cnt'] = res_total['cnt'] - oom['json']['fork_max_usage'] = res_total['rss'] * 4 + oom['json']['fork_max_usage'] = res_total['rss'] * page_size return summary def oom_get_podName(cgName, cID, oom_result): -- Gitee