11.04 /proc/[pid]
zawiera oom_score_adj
, ale man proc
opisuje stare oom_adj
. Bezskutecznie szukałem informacji o tym, jak z tego korzystać.
Muszę ustalić, że procesy zapoczątkowane przez „pbs” lub „gridengine” są zabijane, zanim cokolwiek innego zostanie zabite. Jak mogę to zrobić?
process
memory-usage
bmargulies
źródło
źródło
Odpowiedzi:
Oparty na moich własnych pytaniach i odpowiedziach na Unix i Linux na podobne pytanie.
Jak Stuart bardzo dobrze wskazał w swojej odpowiedzi , prawidłowe wartości to liczby całkowite z zakresu od -1000 do 1000 dla
oom_score_adj
. Im niższa wartość, tym mniejsza szansa, że zostanie zabita.Bardzo niewygodne jest zmienianie tej wartości raz po raz po ponownym uruchomieniu aplikacji. Informacje są po prostu tracone po zakończeniu procesu. Upstart (demon init w Ubuntu), ma fajną opcję do skonfigurowania demonów, aby upewnić się, że jest ustawiony za każdym razem, gdy (ponownie) się uruchomi:
Zasadniczo możesz więc edytować
/etc/init/myservice.conf
plik konfiguracyjny dla usług, które chcesz zmienić, aby uwzględnić linięoom score -1000
. Zakładam, że usługi „pbs” lub „gridengine”, o których mówisz w swoim pytaniu, obsługują Upstart, w przeciwnym razie będziesz potrzebować innego sposobu, aby to zmienić na stałe.źródło
Jeśli możesz zmodyfikować skrypt startowy spawnujący proces, który chcesz ustawić jako priorytet dla oom-killera, dodaj do skryptu startowego następujące elementy:
Wartość jest dziedziczona dla procesów potomnych.
źródło
Jeśli ustawisz wysoką (ish) wartość dla oom_adj lub oom_score_adj, zostaną one zabite jako pierwsze. na przykład
oom_adj zmienia się z -16 na 15 i jak wspomniano powyżej oom_score_adj akceptuje -1000 do 1000
źródło
sudo sh -c "echo -1000 > /proc/[PID]/oom_score_adj"
Sprawdzanie kodu jest zawsze dobrym pomysłem. Zwykle używam funkcji wyszukiwania kernel.org, ale obecnie nie działa. Github też wykonuje dobrą robotę. Znalazłem to:
Od https://github.com/mirrors/linux-2.6/commit/a63d83f427fbce97a6cea0db2e64b0eb8435cd10#include/linux/oom.h
źródło
Mamy teraz choom .
tl; dr:
choom --adjust -100 myprogram
.Strona podręcznika zawiera więcej informacji.
źródło