GNU/Linux >> Znalost Linux >  >> Linux

Proč OOM-Killer nemůže prostě zabít proces, který požaduje příliš mnoho?

Zvažte tento scénář:

  • Máte 4 GB volné paměti.
  • Chybný proces přiděluje 3,999 GB.
  • Otevřete správce úloh, abyste ukončili proces, který utekl. Správce úloh přiděluje 0,002 GB.

Pokud by proces, který byl zabit, byl posledním procesem, který požadoval paměť, váš správce úloh by byl zabit.

Nebo:

  • Máte 4 GB volné paměti.
  • Chybný proces přiděluje 3,999 GB.
  • Otevřete správce úloh, abyste ukončili proces, který utekl. X server přiděluje 0,002 GB pro obsluhu okna správce úloh.

Nyní je váš X server zabit. Problém to nezpůsobilo; bylo to jen "ve špatnou dobu na špatném místě". Stalo se, že to byl první proces, který alokoval více paměti, když už žádná nezbyla, ale nebyl to proces, který pro začátek použil všechnu paměť.


Linux
  1. Nástroj, který umožňuje protokolování využití paměti?

  2. Linux – Jak se Oom Killer rozhodne, který proces zabije jako první?

  3. Co zabilo můj proces a proč?

  1. Jak mohu omezit mezipaměť používanou kopírováním, aby byla stále k dispozici paměť pro jinou mezipaměť?

  2. Jak získat ID procesu pro ukončení procesu nohup?

  3. Jak mohu zobrazit využití paměti každého procesu, když udělám 'ps -ef'?

  1. Linux – Omezit využití paměti pro jeden linuxový proces?

  2. Co dělat, když Ctrl + C nemůže zabít proces?

  3. Jak zabít proces, který nikdy neumírá?