display VmSize of victim in reports
This commit is contained in:
parent
72a6ca50af
commit
158404867f
@ -116,7 +116,7 @@ The program can be configured by editing the [config file](https://github.com/ha
|
|||||||
1. Memory levels to respond to as an OOM threat
|
1. Memory levels to respond to as an OOM threat
|
||||||
2. The frequency of checking the level of available memory (and CPU usage)
|
2. The frequency of checking the level of available memory (and CPU usage)
|
||||||
3. The prevention of killing innocent victims
|
3. The prevention of killing innocent victims
|
||||||
4. Impact on the badness of processes via matching their names and cmdlines with regular expressions
|
4. Impact on the badness of processes via matching their names, cmdlines and UIDs with regular expressions
|
||||||
5. The execution of a specific command instead of sending the SIGTERM signal
|
5. The execution of a specific command instead of sending the SIGTERM signal
|
||||||
6. GUI notifications:
|
6. GUI notifications:
|
||||||
- results of preventing OOM
|
- results of preventing OOM
|
||||||
@ -190,7 +190,7 @@ Please create [issues](https://github.com/hakavlad/nohang/issues). Use cases, fe
|
|||||||
- Fix: replace `re.fullmatch()` by `re.search()`
|
- Fix: replace `re.fullmatch()` by `re.search()`
|
||||||
- Validation RE patterns at startup
|
- Validation RE patterns at startup
|
||||||
- Improve output:
|
- Improve output:
|
||||||
- Display `UID`, `RssAnon`, `RssFile`, `RssShmem` and `cmdline` of the victim in corrective action reports
|
- Display `UID`, `VmSize`, `RssAnon`, `RssFile`, `RssShmem` and `cmdline` of the victim in corrective action reports
|
||||||
- Print in terminal with colors
|
- Print in terminal with colors
|
||||||
- Optimize limiting `oom_score_adj`: now it can works without UID=0
|
- Optimize limiting `oom_score_adj`: now it can works without UID=0
|
||||||
- Optimize GUI warnings: find env without run `ps` and `env` (partially implemented)
|
- Optimize GUI warnings: find env without run `ps` and `env` (partially implemented)
|
||||||
|
12
nohang
12
nohang
@ -422,6 +422,11 @@ def find_victim_and_send_signal(signal):
|
|||||||
uid = line.split('\t')[1]
|
uid = line.split('\t')[1]
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
|
||||||
|
if n is vm_size_index:
|
||||||
|
vm_size = kib_to_mib(int(line.split('\t')[1][:-4]))
|
||||||
|
continue
|
||||||
|
|
||||||
if n is vm_rss_index:
|
if n is vm_rss_index:
|
||||||
vm_rss = kib_to_mib(int(line.split('\t')[1][:-4]))
|
vm_rss = kib_to_mib(int(line.split('\t')[1][:-4]))
|
||||||
continue
|
continue
|
||||||
@ -477,12 +482,13 @@ def find_victim_and_send_signal(signal):
|
|||||||
'\n PID: \033[33m{}\033[0m' \
|
'\n PID: \033[33m{}\033[0m' \
|
||||||
'\n UID: \033[33m{}\033[0m' \
|
'\n UID: \033[33m{}\033[0m' \
|
||||||
'\n Badness: \033[33m{}\033[0m' \
|
'\n Badness: \033[33m{}\033[0m' \
|
||||||
|
'\n VmSize: \033[33m{}\033[0m MiB' \
|
||||||
'\n VmRSS: \033[33m{}\033[0m MiB' \
|
'\n VmRSS: \033[33m{}\033[0m MiB' \
|
||||||
'\n VmSwap: \033[33m{}\033[0m MiB' \
|
'\n VmSwap: \033[33m{}\033[0m MiB' \
|
||||||
'\n CmdLine: \033[33m{}\033[0m' \
|
'\n CmdLine: \033[33m{}\033[0m' \
|
||||||
'\n Execute the command: \033[4m{}\033[0m' \
|
'\n Execute the command: \033[4m{}\033[0m' \
|
||||||
'\n Exit status: {}; response time: {} ms'.format(
|
'\n Exit status: {}; response time: {} ms'.format(
|
||||||
name, pid, uid, victim_badness, vm_rss, vm_swap,
|
name, pid, uid, victim_badness, vm_size, vm_rss, vm_swap,
|
||||||
cmdline, command, exit_status,
|
cmdline, command, exit_status,
|
||||||
round(response_time * 1000))
|
round(response_time * 1000))
|
||||||
|
|
||||||
@ -516,11 +522,12 @@ def find_victim_and_send_signal(signal):
|
|||||||
'\n PID: \033[33m{}\033[0m' \
|
'\n PID: \033[33m{}\033[0m' \
|
||||||
'\n UID: \033[33m{}\033[0m' \
|
'\n UID: \033[33m{}\033[0m' \
|
||||||
'\n Badness: \033[33m{}\033[0m' \
|
'\n Badness: \033[33m{}\033[0m' \
|
||||||
|
'\n VmSize: \033[33m{}\033[0m MiB' \
|
||||||
'\n VmRSS: \033[33m{}\033[0m MiB' \
|
'\n VmRSS: \033[33m{}\033[0m MiB' \
|
||||||
'\n VmSwap: \033[33m{}\033[0m MiB' \
|
'\n VmSwap: \033[33m{}\033[0m MiB' \
|
||||||
'\n CmdLine: \033[33m{}\033[0m' \
|
'\n CmdLine: \033[33m{}\033[0m' \
|
||||||
'\n Sending \033[4m{}\033[0m to the victim; {}'.format(
|
'\n Sending \033[4m{}\033[0m to the victim; {}'.format(
|
||||||
name, pid, uid, victim_badness, vm_rss, vm_swap,
|
name, pid, uid, victim_badness, vm_size, vm_rss, vm_swap,
|
||||||
cmdline, sig_dict[signal], send_result)
|
cmdline, sig_dict[signal], send_result)
|
||||||
print(mem_info)
|
print(mem_info)
|
||||||
print(preventing_oom_message)
|
print(preventing_oom_message)
|
||||||
@ -704,6 +711,7 @@ status_names = []
|
|||||||
for s in status_list:
|
for s in status_list:
|
||||||
status_names.append(s.split(':')[0])
|
status_names.append(s.split(':')[0])
|
||||||
|
|
||||||
|
vm_size_index = status_names.index('VmSize')
|
||||||
vm_rss_index = status_names.index('VmRSS')
|
vm_rss_index = status_names.index('VmRSS')
|
||||||
vm_swap_index = status_names.index('VmSwap')
|
vm_swap_index = status_names.index('VmSwap')
|
||||||
uid_index = status_names.index('Uid')
|
uid_index = status_names.index('Uid')
|
||||||
|
Loading…
Reference in New Issue
Block a user