W naszym klastrze ograniczamy zasoby naszych procesów, np. Pamięć ( memory.limit_in_bytes).
Myślę, że ostatecznie jest to również obsługiwane przez zabójcę OOM w jądrze Linuksa (wygląda to tak, czytając kod źródłowy ).
Czy jest jakiś sposób na uzyskanie sygnału, zanim mój proces zostanie zabity? (Podobnie jak -notifyopcja dla SGEqsub , które wyślą SIGUSR1przed zakończeniem procesu).
Czytam o tym /dev/mem_notify tutaj, ale nie mam tego - czy jest coś jeszcze w dzisiejszych czasach? Przeczytałem również to, co wydaje się dość istotne.
Chcę być w stanie przynajmniej zrzucić ślad małego stosu i może jakieś inne przydatne informacje debugowania - ale może uda mi się nawet odzyskać, zwalniając trochę pamięci.
Jednym z obejść, których obecnie używam, jest ten mały skrypt, który często sprawdza, czy jestem blisko (95%) limitu, a jeśli tak, wysyła proces a SIGUSR1. W Bash uruchamiam ten skrypt w tle ( cgroup-mem-limit-watcher.py &), aby szukał on innych procesów w tej samej grupie i automatycznie kończy działanie po śmierci nadrzędnego procesu Bash.