GNU/Linux >> Znalost Linux >  >> Linux

-bash:fork:Nelze alokovat paměť

Také jsem čelil tomuto problému se svým desktopem Ubuntu 14.04.

 free -m

I tyto základní příkazy ukazovaly chybu Nelze přidělit paměť. Při vyšetřování bylo zjištěno, že systém využívá veškerou paměť pro ukládání do mezipaměti a neuvolňuje paměť. Tomu se říká Cache Ballooning a vyřešilo se to vymazáním mezipaměti.


V mém případě OS docházel PID místo paměti, chybová zpráva však byla stejná.

Výchozí hodnota max. čísla PID je 32768, pro zobrazení hodnoty spusťte

cat  /proc/sys/kernel/pid_max

Chcete-li změnit maximální číslo pid, spusťte

echo 100000 > /proc/sys/kernel/pid_max

V mém scénáři bylo hlavní příčinou to, že jeden java prcocess vytvořil 18 000 a více vláken (v linuxovém jádře je vlákno v podstatě proces), abyste zjistili počet vláken každého procesu, spusťte

ps -eo nlwp,pid,args --sort nlwp

Linux
  1. Co je ioremap()

  2. Získejte ID podprocesu v Javě

  3. Jenkins aktivní (opuštěno)

  1. Využití paměti Linuxu

  2. Grep:Vyčerpaná paměť?

  3. Je možné alokovat velké množství virtuální paměti v linuxu?

  1. Linux – Získávání informací o využití paměti procesu z /proc/pid/smaps?

  2. Který proces má Pid 0?

  3. Limit paměti PHP