A diferencia de casi todas las quejas de lag, esta sí va de memoria. El servidor pidió más de la que tenía y se detuvo. Lo que merece respuesta es si la necesitaba, o si algo la estaba desperdiciando.
Lo que estás viendo
java.lang.OutOfMemoryError: Java heap spaceen la consola- El servidor se para de golpe, a veces a mitad de guardado.
- Pasa tras un rato encendido, no al arrancar.
Por qué pasa
Java corre dentro de un techo de memoria fijo. Cuando los datos vivos lo llenan y la recolección no consigue liberar suficiente, el proceso se rinde. O la carga necesita legítimamente más sitio, o algo está reteniendo memoria que debería haber soltado.
Qué hacer
- Fíjate en cuándo pasa
Al arrancar significa que el plan es pequeño para lo que estás cargando: un modpack que no cabe. Tras horas o días encendido significa que algo se está acumulando.
- Si se acumula, encuentra qué
/spark heapsummarylista qué está ocupando la memoria. Un plugin arriba que crece entre ejecuciones es una fuga, y se arregla actualizándolo o quitándolo. - Reduce lo que tiene que estar cargado
Bajar la distancia de renderizado, tener menos chunks permanentemente cargados y menos entidades reduce la base que el servidor debe sostener.
- Sube de plan si la carga simplemente es mayor
Un pack de cien mods en 4 GB no es una fuga, es un tamaño equivocado. Este es uno de los dos casos en que más RAM sí es la respuesta.
El servidor aguanta un día entero de carga normal sin el error, y /spark heapsummary muestra holgura al final.
Un cierre así puede dejar el mundo a medio escribir. Si el servidor se comporta raro después de una parada por falta de memoria, restaura la copia más reciente en vez de seguir jugando.