Siempre es aconsejable tener espacio de intercambio (swap). Es una muy buena idea permitir que el kernel realice sobrecompromiso de memoria. Esto puede reducir sustancialmente tus necesidades máximas de memoria.
Primero soluciona esas dos cosas y luego inténtalo de nuevo. Para el sobrecompromiso, consulta:
En cuanto al diagnóstico, podría ser útil revisar dmesg en busca de eventos de OOM (falta de memoria), lo cual puedes hacer después, y también ejecutar vmstat en el momento del bloqueo.