diff --git a/source/tools/detect/mem/oomcheck/oomcheck.py b/source/tools/detect/mem/oomcheck/oomcheck.py index d50e4a3c241bd572a65b5c987711a7b8496b675d..d7a3efb7773c6639ee169cf60cede35ee73aa207 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):