GNU/Linux >> Linux Esercitazione >  >> Linux

-bash:fork:Impossibile allocare memoria

Ho riscontrato questo problema anche con il mio desktop Ubuntu 14.04.

 free -m

Anche questi comandi di base hanno mostrato errore Impossibile allocare memoria. Durante le indagini, è stato scoperto che il sistema utilizza tutta la memoria per la memorizzazione nella cache e non sta liberando memoria. Questo si chiama Cache Ballooning e risolve questo problema cancellando la cache.


Nel mio caso, il sistema operativo stava esaurendo il PID anziché la memoria, ma il messaggio di errore era lo stesso.

Il valore predefinito del numero PID massimo è 32768, per visualizzare il valore eseguire

cat  /proc/sys/kernel/pid_max

Per modificare il numero massimo di pid, esegui

echo 100000 > /proc/sys/kernel/pid_max

Nel mio scenario, la causa principale era che un processo java generava più di 18.000 thread (nel kernel Linux, il thread è essenzialmente un processo), per scoprire il numero di thread di ciascun processo, esegui

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

Linux
  1. Grep:Memoria esaurita?

  2. Linux:ottenere informazioni sull'utilizzo della memoria di un processo da /proc/pid/smaps?

  3. Limite di memoria PHP

  4. Cos'è ioremap()

  5. Ottieni l'ID del sottoprocesso in Java

Che cos'è la NVM (memoria non volatile)?

"systemd-udevd:Impossibile allocare memoria" e "Un processo di avvio è in esecuzione per dev-mapper-\x2droot.device" - Problema di avvio di CentOS/RHEL 7

Jenkins attivo (uscito)

Possiamo testare l'allocazione della memoria in unità?

Utilizzo della memoria dei comandi TOP

Impossibile allocare memoria mentre nessun processo sembra utilizzare la memoria