proc_pid_oom_score_adj(5) File Formats Manual proc_pid_oom_score_adj(5) NAZWA /proc/pid/oom_score_adj - dostosowanie wyniku dla OOM-killera OPIS /proc/pid/oom_score_adj (od Linuksa 2.6.36) Plik moze byc uzyty do dostosowania heurystyki zwanej ,,badness", uzywanej do wybrania procesu ktory zostanie zabity w sytuacji braku pamieci. Przypisuje ona do kazdego potencjalnego zadania wartosc od 0 (nigdy nie zabija) do 1000 (zawsze zabija) aby okreslic docelowy proces do zabicia. Jednostki sa z grubsza proporcjonalne do pamieci, ktora proces moze przydzielic, obliczana w oparciu do biezacego uzycia pamieci i pamieci wymiany. Na przyklad zadanie uzywajace cala dozwolona pamiec otrzyma wynik 1000, a jesli uzyje polowe dozwolonej pamieci, otrzyma wynik 500. Dodatkowym czynnikiem w wyniku ,,badness" jest fakt, ze procesy roota maja dodatkowe 3% pamieci w stosunku do pozostalych procesow. Wielkosc ,,dozwolonej" pamieci zalezy od kontekstu w jakim wywolano OOM-killera. Jesli wynika to z faktu, ze pamiec przeznaczona dla zadania alokujacego cpuset zostala wyczerpana, to dozwolona pamiec odpowiada zestawowi pamieci przypisanego do tego cpuset (zobacz cpuset(7)). Jesli jest to skutek zasad dot. pamieci wezla (lub wezlow), to dozwolona pamiec odpowiada zestawowi tych zasad. Jesli wynika to z faktu, ze osiagnieto limit pamieci (lub pamieci wymiany) to dozwolona pamiec jest tak ustawionym limitem. Gdy wynika to z sytuacji braku pamieci, to dozwolona pamiec odpowiada wszystkim zaalokowanym zasobom. Wartosc oom_score_adj jest dodawana do wyniku ,,badness" przed uzyciem jej do wybrania procesu przeznaczonego do zabicia. Dozwolone wartosci wynosza od -1000 (OOM_SCORE_ADJ_MIN) do +1000 (OOM_SCORE_ADJ_MAX). Pozwala to przestrzeni uzytkownika na kontrole preferencji OOM-killing. Mozna w ten sposob zawsze preferowac dane zadanie lub calkowicie wylaczyc je z procesu OOM-killing. Najnizsza dostepna wartosc (-1000) jest rownoznaczna z calkowitym wylaczeniem OOM-killing dla danego zadania, poniewaz zawsze zwroci ono wynik ,,badness" rowny 0. Z tego wzgledu latwo jest zdefiniowac wielkosc pamieci dla kazdego zadania przez przestrzen uzytkownika. Ustawienie wartosci oom_score_adj np. na +500 jest w przyblizeniu odpowiednikiem pozwolenia pozostalym zadaniom w tym samym systemie, cpuset, zasadom dot. pamieci i zasobom kontrolera pamieci na uzycie co najmniej 50% pamieci wiecej. Z kolei wartosc -500 odpowiada mniej wiecej zmniejszeniu o 50% dozwolonej pamieci. Z powodu zgodnosci wstecznej ze starszymi jadrami do modyfikacji wyniku ,,badness" wciaz mozna uzywac /proc/pid/oom_adj. Jego wartosc skaluje sie liniowo z oom_score_adj. Zapis do /proc/pid/oom_score_adj lub /proc/pid/oom_adj zmieni zapis w drugim pseudopliku na przeskalowana odpowiednio wartosc. Program choom(1) zapewnia interfejs wiersza polecen do dostosowywania wartosci oom_score_adj dzialajacego procesu lub nowo wykonywanego polecenia. HISTORIA /proc/pid/oom_adj (od Linuksa 2.6.11) Plik moze byc uzyty do dostosowania wyniku, uzywanego do wybrania procesow do zabicia, w przypadku sytuacji braku pamieci (out-of-memory - OOM). Jadro uzywa tej wartosci do operacji przesuniecia bitowego wartosci oom_score procesu: poprawne wartosci mieszcza sie w zakresie od -16 do +15, wraz ze specjalna wartoscia -17, ktora calkowicie wylacza zabijanie przy OOM danego procesu. Dodatni wynik zwieksza prawdopodobienstwo, ze proces zostanie zabity przez OOM-killer, ujemny zmniejsza je. Domyslna wartoscia tego pliku jest 0, nowy proces dziedziczy ustawienie oom_adj swojego rodzica. Proces musi byc uprzywilejowany (CAP_SYS_RESOURCE) aby moc zaktualizowac ten plik, choc moze zawsze zwiekszyc swoje ustawienie oom_adj (od Linuksa 2.6.20). Od Linuksa 2.6.36 uzywanie tego pliku jest przestarzale, na korzysc /proc/pid/oom_score_adj, a usunieto go w Linuksie 3.7. ZOBACZ TAKZE proc(5), proc_pid_oom_score(5) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Przemek Borys , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.9.1 2 maja 2024 r. proc_pid_oom_score_adj(5)