GNU/Linux >> Tutoriales Linux >  >> Linux

-bash:bifurcación:no se puede asignar memoria

También enfrenté este problema con mi escritorio Ubuntu 14.04.

 free -m

Incluso estos comandos básicos mostraron el error Can't allocate memory. Al investigar, descubrió que el sistema está usando toda la memoria para el almacenamiento en caché y no está liberando memoria. Esto se llama Cache Ballooning y lo resolvió borrando el caché.


En mi caso, el sistema operativo se estaba quedando sin PID en lugar de memoria, aunque el mensaje de error era el mismo.

El valor predeterminado del número PID máximo es 32768, para ver el valor, ejecute

cat  /proc/sys/kernel/pid_max

Para cambiar el número máximo de pid, ejecute

echo 100000 > /proc/sys/kernel/pid_max

En mi escenario, la causa raíz fue que un proceso de Java generó más de 18 000 subprocesos (en el kernel de Linux, el subproceso es esencialmente un proceso), para averiguar el número de subprocesos de cada proceso, ejecute

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

Linux
  1. Linux:¿Obtener información sobre el uso de memoria de un proceso de /proc/pid/smaps?

  2. ¿Qué proceso tiene Pid 0?

  3. "mlock falló:no se puede asignar memoria" error de comando lvcreate en CentOS/RHEL 7

  4. "systemd-udevd:no se puede asignar memoria" y "Se está ejecutando un trabajo de inicio para dev-mapper-\x2droot.device":problema de arranque de CentOS/RHEL 7

  5. Obtenga la identificación del subproceso en Java

Uso de memoria de Linux

¿Qué es NVM (memoria no volátil)?

¿Es posible asignar una gran cantidad de memoria virtual en Linux?

Uso de memoria de comandos TOP

No se puede asignar memoria mientras ningún proceso parece estar consumiendo memoria

Memoria inactiva de Linux