Don't close fd after reading /proc/meminfo

Close fd only at exit
This commit is contained in:
Alexey Avramov 2020-04-27 00:43:42 +09:00
parent f9bff76a93
commit 9e63339fce

View File

@ -721,8 +721,8 @@ def signal_handler(signum, frame):
log('Got the {} signal '.format(
sig_dict[signum]))
fd['mi'].close()
print_stat_dict()
m1 = monotonic()
pt1 = process_time()
ab = pt1 - pt0
@ -1292,8 +1292,8 @@ def find_psi_metrics_value(psi_path, psi_metrics):
def check_mem_and_swap():
"""
"""
with open('/proc/meminfo', 'rb') as f:
m_list = f.read().decode().split(' kB\n')
fd['mi'].seek(0)
m_list = fd['mi'].read().decode().split(' kB\n')
return (int(m_list[mem_available_index].split(':')[1]),
int(m_list[swap_total_index].split(':')[1]),
int(m_list[swap_free_index].split(':')[1]))
@ -1302,8 +1302,8 @@ def check_mem_and_swap():
def meminfo():
"""
"""
with open('/proc/meminfo', 'rb') as f:
m_list = f.read().decode().split(' kB\n')
fd['mi'].seek(0)
m_list = fd['mi'].read().decode().split(' kB\n')
mem_available = int(m_list[mem_available_index].split(':')[1])
mem_free = int(m_list[mem_free_index].split(':')[1])
@ -1891,52 +1891,6 @@ def find_victim_info(pid, victim_badness, name):
)
"""
victim_info = 'Victim status (found in {}ms):' \
'\n Name: {}' \
'\n State: {}' \
'\n PID: {}' \
'{}' \
'\n EUID: {}' \
'\n badness: {}, ' \
'oom_score: {}, ' \
'oom_score_adj: {}' \
'\n VmSize: {} MiB' \
'\n VmRSS: {} MiB {}' \
'\n VmSwap: {} MiB' \
'\n CGroup_v1: {}' \
'\n CGroup_v2: {}' \
'\n NSsid: {} ({})' \
'\n Realpath: {}' \
'\n Cwd: {}' \
'{}{}' \
'\n Lifetime: {}'.format(
round((monotonic() - status0) * 1000),
name,
state,
pid,
ancestry,
uid,
victim_badness,
oom_score,
oom_score_adj,
vm_size,
str(vm_rss).rjust(len_vm),
detailed_rss_info,
str(vm_swap).rjust(len_vm),
victim_cgroup_v1,
victim_cgroup_v2,
nssid, pid_to_name(nssid),
realpath,
cwd,
c1,
cmdline,
victim_lifetime)
"""
return victim_info
@ -3759,6 +3713,11 @@ cmd_num_dict = dict()
cmd_num_dict['cmd_num'] = 0
fd = dict()
fd['mi'] = open('/proc/meminfo', 'rb', buffering=0)
m0 = monotonic()
pt0 = process_time()