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