Jak działa Linux OOM Killer i dlaczego zamyka aplikacje bez ostrzeżenia
W systemie Linux jednym z najbardziej „drastycznych”, ale jednocześnie kluczowych mechanizmów stabilności jest OOM Killer (Out Of Memory Killer). To proces jądra systemu, który włącza się wtedy, gdy systemowi kończy się pamięć RAM i swap.
Dla użytkownika często wygląda to jak nagłe zamknięcie aplikacji „bez powodu” — ale w rzeczywistości to mechanizm ratunkowy.
Czym jest OOM Killer w Linux
OOM Killer to komponent jądra Linux, który:
- aktywuje się przy krytycznym braku pamięci RAM
- wybiera procesy do zakończenia
- zwalnia pamięć, aby system mógł dalej działać
👉 Można go traktować jak „awaryjny system resetu pamięci”.
Jak system reaguje na brak pamięci RAM
W Linux proces zarządzania pamięcią wygląda tak:
- RAM zaczyna się kończyć
- swap (jeśli dostępny) też się zapełnia
- system próbuje odzyskać pamięć
- jeśli to nie działa → uruchamia OOM Killer
👉 Celem jest uniknięcie całkowitego zawieszenia systemu.
Dlaczego Linux zabija procesy bez ostrzeżenia
OOM Killer działa na poziomie jądra systemu, dlatego:
- nie ma okien dialogowych
- nie ma ostrzeżeń dla użytkownika
- decyzja musi być natychmiastowa
👉 System wybiera „mniejsze zło” — zamknięcie aplikacji zamiast crasha całego systemu.
Jak wybierane są aplikacje do zamknięcia
OOM Killer nie działa losowo. Analizuje procesy według tzw. „score”:
Brane pod uwagę:
- zużycie pamięci RAM
- priorytet procesu (nice value)
- czas działania procesu
- wpływ na system
Zasada:
👉 proces najmniej „ważny” i najbardziej zasobożerny jest zabijany jako pierwszy.

Jak zapobiec działaniu OOM Killer
Nie da się go całkowicie wyłączyć, ale można ograniczyć jego aktywację:
1. Zwiększenie swap
- więcej pamięci wirtualnej
2. Ograniczenie aplikacji
- kontrola zużycia RAM
3. Użycie cgroups
- limitowanie pamięci dla grup procesów
4. Optymalizacja systemu
- zamykanie zbędnych usług
👉 Najlepszym rozwiązaniem jest zapobieganie, a nie „wyłączanie” OOM.
Czy można kontrolować priorytety pamięci w Linux
Tak — Linux pozwala wpływać na zachowanie OOM Killer:
Możliwości:
- ustawienie „oom_score_adj” dla procesów
- nadanie procesom niższego priorytetu zabicia
- ochrona krytycznych usług systemowych
Przykład:
- serwer bazy danych może mieć niższy priorytet do zabicia niż zwykła aplikacja
👉 Dzięki temu administrator kontroluje, co system uzna za „ważne”.
Podsumowanie
OOM Killer w Linux to mechanizm awaryjny, który chroni system przed całkowitym zawieszeniem.
Najważniejsze wnioski:
- działa przy krytycznym braku RAM
- automatycznie zamyka procesy bez ostrzeżenia
- wybiera aplikacje według priorytetu i zużycia pamięci
- można go kontrolować, ale nie wyłączyć
- współpracuje z systemem zarządzania pamięcią
👉 Wniosek końcowy:
OOM Killer nie jest błędem — to ostatnia linia obrony Linuxa, która poświęca jedną aplikację, żeby uratować cały system.






