fix oom-sort
This commit is contained in:
parent
02bc46275e
commit
d9840193a4
24
README.md
24
README.md
@ -138,15 +138,21 @@ $ oom-sort
|
|||||||
Output like follow:
|
Output like follow:
|
||||||
|
|
||||||
```
|
```
|
||||||
oom_score oom_adj oom_score_adj Pid Name RSS Swap
|
oom_score oom_score_adj Uid Pid Name VmRSS VmSwap cmdline
|
||||||
--------- ------- ------------- ----- --------------- --------- ---------
|
--------- ------------- ----- ----- --------------- -------- -------- -------
|
||||||
314 5 300 3519 chromium 85 M 0 M
|
314 300 1000 991 chromium 84 M 0 M /usr/lib/chromium/chromium --type=renderer --field-trial-handle=868244496792098610,5765419126773948943,131072 --service-pipe-token=14782672631740123203 --lang=ru --user-data-dir=/tmp/tmp.TJ91B6F0zB --disable-client-side-phishing-detection --enable-offline-auto-reload --enable-offline-auto-reload-visible-only --num-raster-threads=1 --service-request-channel-token=14782672631740123203 --renderer-client-id=4 --no-v8-untrusted-code-mitigations --shared-files=v8_context_snapshot_data:100,v8_natives_data:101
|
||||||
307 5 300 3581 chromium 44 M 0 M
|
307 300 1000 1124 chromium 44 M 0 M /usr/lib/chromium/chromium --type=renderer --field-trial-handle=868244496792098610,5765419126773948943,131072 --service-pipe-token=10276223625123198448 --lang=ru --user-data-dir=/tmp/tmp.TJ91B6F0zB --disable-client-side-phishing-detection --enable-offline-auto-reload --enable-offline-auto-reload-visible-only --num-raster-threads=1 --service-request-channel-token=10276223625123198448 --renderer-client-id=6 --no-v8-untrusted-code-mitigations --shared-files=v8_context_snapshot_data:100,v8_natives_data:101
|
||||||
215 3 200 3485 chromium 93 M 0 M
|
217 200 1000 962 chromium 99 M 0 M /usr/lib/chromium/chromium --type=gpu-process --field-trial-handle=868244496792098610,5765419126773948943,131072 --user-data-dir=/tmp/tmp.TJ91B6F0zB --disable-breakpad --gpu-preferences=KAAAAAAAAACAAABAAQAAAAAAAAAAAGAAAAAAAAEAAAAIAAAAAAAAAAgAAAAAAAAA --user-data-dir=/tmp/tmp.TJ91B6F0zB --service-request-channel-token=2848128951654484113
|
||||||
202 3 200 3509 chromium 16 M 0 M
|
202 200 1000 1032 chromium 16 M 0 M /usr/lib/chromium/chromium --type=-broker
|
||||||
133 0 0 2696 firefox-esr 782 M 0 M
|
43 0 1000 736 firefox-esr 251 M 0 M /usr/lib/firefox-esr/firefox-esr
|
||||||
74 0 0 3150 VirtualBox 436 M 0 M
|
21 0 1000 914 chromium 124 M 0 M /usr/lib/chromium/chromium --show-component-extension-options --ignore-gpu-blacklist --no-default-browser-check --disable-pings --media-router=0 --enable-remote-extensions --user-data-dir=/tmp/tmp.TJ91B6F0zB
|
||||||
38 0 0 3388 Web Content 223 M 0 M
|
17 0 1000 844 Web Content 103 M 0 M /usr/lib/firefox-esr/plugin-container -greomni /usr/lib/firefox-esr/omni.ja -appomni /usr/lib/firefox-esr/browser/omni.ja -appdir /usr/lib/firefox-esr/browser 736 true tab
|
||||||
|
16 0 1000 31555 dolphin 95 M 0 M dolphin
|
||||||
|
15 0 0 863 Xorg 92 M 0 M /usr/lib/xorg/Xorg :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
|
||||||
|
8 0 110 860 tor 50 M 0 M /usr/bin/tor --defaults-torrc /usr/share/tor/tor-service-defaults-torrc -f /etc/tor/torrc --RunAsDaemon 0
|
||||||
|
8 0 1000 918 chromium 48 M 0 M /usr/lib/chromium/chromium --type=zygote --user-data-dir=/tmp/tmp.TJ91B6F0zB
|
||||||
|
7 0 1000 1106 mate-panel 43 M 0 M mate-panel
|
||||||
|
6 0 1000 1157 wnck-applet 35 M 0 M /usr/lib/mate-panel/wnck-applet
|
||||||
```
|
```
|
||||||
|
|
||||||
## oom-trigger
|
## oom-trigger
|
||||||
|
46
oom-sort
46
oom-sort
@ -5,61 +5,39 @@ sort processes by oom_score
|
|||||||
from operator import itemgetter
|
from operator import itemgetter
|
||||||
from os import listdir
|
from os import listdir
|
||||||
from argparse import ArgumentParser
|
from argparse import ArgumentParser
|
||||||
'''
|
|
||||||
oom-sort -n 9
|
|
||||||
oom-sort -c
|
|
||||||
oom-sort --cmdline 20
|
|
||||||
watch oom-sort
|
|
||||||
'''
|
|
||||||
|
|
||||||
|
|
||||||
parser = ArgumentParser()
|
parser = ArgumentParser()
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--number',
|
'--num',
|
||||||
'-n',
|
'-n',
|
||||||
help="""number of lines; integer, not negative; 0 - unlimited; unlimited by default""",
|
help="""max number of lines; integer, not negative; default: 99999""",
|
||||||
default=None,
|
default=None,
|
||||||
type=str
|
type=str
|
||||||
)
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--cmdline',
|
'--len',
|
||||||
'-c',
|
'-l',
|
||||||
help="""display cmdlines""",
|
help="""max cmdline length; default: 99999""",
|
||||||
default=None,
|
default=None,
|
||||||
type=str
|
type=str
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
display_cmdline = args.cmdline
|
display_cmdline = args.len
|
||||||
num_lines = args.number
|
num_lines = args.num
|
||||||
|
|
||||||
|
|
||||||
if num_lines == None:
|
if num_lines == None:
|
||||||
num_lines = 99999
|
num_lines = 99999
|
||||||
|
|
||||||
|
|
||||||
if display_cmdline == None:
|
if display_cmdline == None:
|
||||||
display_cmdline = 9999
|
display_cmdline = 99999
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#print([num_lines], [display_cmdline])
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def human(num):
|
def human(num):
|
||||||
'''KiB to MiB'''
|
'''KiB to MiB'''
|
||||||
return str(round(num / 1024.0)).rjust(6, ' ')
|
return str(round(num / 1024.0)).rjust(6, ' ')
|
||||||
|
|
||||||
|
|
||||||
with open('/proc/self/status') as file:
|
with open('/proc/self/status') as file:
|
||||||
status_list = file.readlines()
|
status_list = file.readlines()
|
||||||
|
|
||||||
@ -97,8 +75,12 @@ for pid in listdir('/proc'):
|
|||||||
# list sorted by oom_score
|
# list sorted by oom_score
|
||||||
oom_list_sorted = sorted(oom_list, key=itemgetter(1), reverse=True)
|
oom_list_sorted = sorted(oom_list, key=itemgetter(1), reverse=True)
|
||||||
|
|
||||||
print('oom_score oom_score_adj Uid Pid Name VmRSS VmSwap cmdline')
|
if display_cmdline == '0':
|
||||||
print('--------- ------------- ----- ----- --------------- -------- -------- -------')
|
print('oom_score oom_score_adj Uid Pid Name VmRSS VmSwap')
|
||||||
|
print('--------- ------------- ----- ----- --------------- -------- --------')
|
||||||
|
else:
|
||||||
|
print('oom_score oom_score_adj Uid Pid Name VmRSS VmSwap cmdline')
|
||||||
|
print('--------- ------------- ----- ----- --------------- -------- -------- -------')
|
||||||
|
|
||||||
# итерируемся по сортированному списку oom_score, печатая name, pid etc
|
# итерируемся по сортированному списку oom_score, печатая name, pid etc
|
||||||
for i in oom_list_sorted[:int(num_lines)]:
|
for i in oom_list_sorted[:int(num_lines)]:
|
||||||
|
Loading…
Reference in New Issue
Block a user