оптимизация zram_stat
This commit is contained in:
parent
39677bb7f6
commit
227ff86be0
41
nohang
41
nohang
@ -106,36 +106,22 @@ def human(num):
|
||||
|
||||
# возвращает disksize и mem_used_total по zram id
|
||||
def zram_stat(zram_id):
|
||||
|
||||
try:
|
||||
with open('/sys/block/' + zram_id + '/disksize') as file:
|
||||
disksize = file.readlines()
|
||||
disksize = rline1('/sys/block/' + zram_id + '/disksize')
|
||||
except FileNotFoundError:
|
||||
return '0', '0'
|
||||
|
||||
if disksize == ['0\n']:
|
||||
return '0', '0'
|
||||
|
||||
try:
|
||||
|
||||
with open('/sys/block/' + zram_id + '/mm_stat') as file:
|
||||
mm_stat = file.readlines()[0][:-1].split(' ')
|
||||
|
||||
mm_stat = rline1('/sys/block/' + zram_id + '/mm_stat').split(' ')
|
||||
mm_stat_list = []
|
||||
|
||||
# улучшить, сократить цикл
|
||||
for i in mm_stat:
|
||||
if i != '':
|
||||
mm_stat_list.append(i)
|
||||
|
||||
mem_used_total = mm_stat_list[2]
|
||||
|
||||
except FileNotFoundError:
|
||||
|
||||
with open('/sys/block/' + zram_id + '/mem_used_total') as file:
|
||||
mem_used_total = file.readlines()[0][:-1]
|
||||
|
||||
return disksize[0][:-1], mem_used_total # BYTES, str
|
||||
mem_used_total = rline1('/sys/block/' + zram_id + '/mem_used_total')
|
||||
return disksize, mem_used_total # BYTES, str
|
||||
|
||||
|
||||
# имя через пид
|
||||
@ -156,20 +142,15 @@ def find_victim_and_send_signal(signal):
|
||||
decrease_oom_score_adj(oom_score_adj_before, oom_score_adj_after)
|
||||
|
||||
#print('Find victim...')
|
||||
|
||||
oom_list = []
|
||||
|
||||
for i in os.listdir('/proc'):
|
||||
|
||||
if i.isdigit() is not True:
|
||||
continue
|
||||
|
||||
try:
|
||||
with open('/proc/' + i + '/oom_score') as file:
|
||||
oom_score = int(file.readlines()[0][:-1])
|
||||
oom_score = int(rline1('/proc/' + i + '/oom_score'))
|
||||
except FileNotFoundError:
|
||||
oom_score = 0
|
||||
|
||||
oom_list.append((i, oom_score))
|
||||
|
||||
# получаем список пар (pid, oom_score)
|
||||
@ -178,9 +159,7 @@ def find_victim_and_send_signal(signal):
|
||||
|
||||
# посылаем сигнал
|
||||
if oom_score >= oom_score_min:
|
||||
|
||||
pid = pid_tuple_list[0]
|
||||
|
||||
name = pid_to_name(pid)
|
||||
|
||||
print(
|
||||
@ -227,7 +206,6 @@ mem_total = int(mem_list[0].split(':')[1].split(' ')[-2])
|
||||
|
||||
|
||||
|
||||
|
||||
config_dict = config_parser(config)
|
||||
|
||||
if config_dict is 1:
|
||||
@ -318,8 +296,6 @@ else:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def sig_level_to_kb(string):
|
||||
if string.endswith('%'):
|
||||
return float(string[:-1].strip()) / 100 * mem_total
|
||||
@ -338,8 +314,6 @@ zram_max_sigkill_kb = sig_level_to_kb(zram_max_sigkill)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# возвращает число килобайт при задании в конфиге абсолютного значения,
|
||||
# или кортеж с числом процентов
|
||||
def sig_level_to_kb_swap(string):
|
||||
@ -456,16 +430,11 @@ while True:
|
||||
# находим MemUsedZram
|
||||
disksize_sum = 0
|
||||
mem_used_total_sum = 0
|
||||
|
||||
for dev in os.listdir('/sys/block'):
|
||||
|
||||
if dev.startswith('zram'):
|
||||
|
||||
stat = zram_stat(dev)
|
||||
|
||||
disksize_sum += int(stat[0])
|
||||
mem_used_total_sum += int(stat[1])
|
||||
|
||||
mem_used_zram = (
|
||||
mem_used_total_sum + disksize_sum * zram_disksize_factor
|
||||
) / 1024.0
|
||||
|
Loading…
Reference in New Issue
Block a user