GNU/Linux >> Znalost Linux >  >> Linux

Jak diagnostikovat příčiny procesů zabíjení oom-killer

Řešení 1:

Ne, algoritmus není tak jednoduchý. Více informací naleznete v:

http://linux-mm.org/OOM_Killer

Pokud chcete sledovat využití paměti, doporučuji spustit příkaz jako:

ps -e -o pid,user,cpu,size,rss,cmd --sort -size,-rss | head

Poskytne vám seznam procesů, které využívají nejvíce paměti (a pravděpodobně způsobují situaci OOM). Odstraňte | head pokud byste raději zkontrolovali všechny procesy.

Pokud to dáte do cronu, opakujte to každých 5 minut a uložte do souboru. Ponechejte si alespoň několik dní, abyste mohli později zkontrolovat, co se stalo.

Pro kritické služby, jako je ssh, bych v takové situaci doporučil použít monit pro jejich automatické restartování. Pokud k němu nemáte vzdálenou konzolu, může to zachránit před ztrátou přístupu k počítači.

hodně štěstí,
João Miguel Neves

Řešení 2:

Nedávno jsem s tím měl těžké časy, protože proces(y), na které oom-killer šlape, nemusí být nutně ty, které se pokazily. Když jsem se to snažil diagnostikovat, dozvěděl jsem se o jednom z mých nyní oblíbených nástrojů, nahoře.

Tento nástroj je jako top na steroidech. Během předem nastaveného časového intervalu profiluje systémové informace. Poté si jej můžete přehrát, abyste viděli, co se děje. Zvýrazňuje procesy, které jsou z 80 %+ v modré a z 90 %+ v červené. Nejužitečnějším pohledem je tabulka využití paměti, která uvádí, kolik paměti bylo přiděleno za poslední časové období. To mi pomohlo nejvíc.

Fantastický nástroj – nelze o něm říct dost.

na monitoru výkonu


Linux
  1. Jak vymazat mezipaměť v Linuxu

  2. Jak zobrazit nejlepší procesy seřazené podle skutečného využití paměti?

  3. Jak vypsat seznam procesů připojených k segmentu sdílené paměti v linuxu?

  1. Jak mohu pozorovat šířku pásma paměti?

  2. Jak omezit využití paměti aplikace?

  3. Začne Linux zabíjet mé procesy, aniž by se mě zeptal, zda nedochází k nedostatku paměti?

  1. Jak najít nejběžnější procesy podle využití paměti a CPU

  2. Jak zabít běžící procesy v Linuxu

  3. Jak číst zprávy syslog oom-killer?