Katalog /proc zawiera między innymi działające procesy. Każdy proces posiada swój katalog wewnątrz /proc z nazwą odpowiadającą jego PID.
# Wylistowanie procesów
ps auxf
ls /proc <- katalogi z procami (PID jako nazwa)
# Zawartość katalogu /proc/PID
fd – file descriptions, pliki z jakich korzysta proces (logi, konfigi, itp)
cmdline – command line, w jaki sposób uruchamiano proces, gdy go wywołano [nie ma spacji w wyniku]
exe – link do binarki (soft link)
cwd – current working directory; wskazuje katalog domowy z którego uruchomiono proces
limits – limity ustawione na dany proces
# Out of memory
W powyższym katalogu znajdują się również 3 pliki rozpoczynające się od oom_.
W systemie istnieje proces ’Out of memory killer’. Na podstawie algorytmu podejmuje decyzje jakie procesy zabić gdy skończy się pamięć. Najpierw zabija od najwyższych ocen w oom_score.
oom_score – ocena, jaką OOMK Killer dał procesowi (im wyżej, tym większe prawdopodobieństwo, że killer go zabije)
im więcej pamięci zżera proces tym dostaje wyższą ocenę
oom_adj – poprawka do oceny [zakres -17 <-> 15)
-17 – nigdy w życiu go nie zabijaj
0 – traktuj jak normalny proces
oom_score_adj – zmienia algorytm liczenia score (-1000 <-> 1000)
0 – algorytm działa normalnie, bez ingerencji
-1000 – odejmij 100% zajętości pamięci w obliczeniach
-500 – odejmij 50% z obliczeń
Tymi plikami możemy decydować co można ewentualnie zabić.
# Zmiana plików oom_
choom -p PID <- wyświetli ocenę dla procesu
-n poprawka_do_oceny