¿Cuánta RAM necesita un servidor de Minecraft?
La mayoría de servidores Paper van bien con entre 3 y 8 GB de heap: 3 o 4 GB para jugar con amigos, 5 o 6 GB para 20 o 30 jugadores con unos cuantos plugins, y 8 GB o más a partir de 50 jugadores. El plan que contrates tiene que ser algo más grande, porque Java también usa memoria fuera del heap.
| Jugadores conectados | Plugins | Mínima | Recomendada | Plan o contenedor |
|---|---|---|---|---|
| 5 | 10 | 2 GB | 3 GB | 4 GB |
| 10 | 15 | 3 GB | 4 GB | 5 GB |
| 20 | 25 | 3 GB | 5 GB | 6 GB |
| 30 | 40 | 4 GB | 6 GB | 7 GB |
| 50 | 50 | 5 GB | 8 GB | 10 GB |
| 100 | 80 | 8 GB | 13 GB | 15 GB |
La calculadora de arriba hace la misma cuenta con tus números. Tómala como punto de partida: el consumo real depende de lo repartidos que estén los jugadores, de la distancia de visión y de lo que haga cada plugin.
Cómo se calcula
La calculadora suma el heap, que es la memoria que Java le da a Minecraft (la que fijas con -Xmx):
- 2 GB de base para Paper o Purpur con sus mundos cargados y nadie conectado. Folia parte de 3 GB, porque está hecho para muchos jugadores repartidos por el mapa.
- 75 MB por cada jugador conectado a la vez. Cada jugador mantiene cargados los chunks que tiene alrededor, con sus mobs y sus objetos. Los jugadores repartidos por el mundo gastan más que los que están juntos en un lobby.
- 40 MB por plugin, de media. La mayoría gasta mucho menos, y unos pocos, muchísimo más.
- 2 GB más por plugins pesados o un mundo grande: mapas web (Dynmap, BlueMap), modelos propios (ItemsAdder, ModelEngine), muchos mobs o granjas, o una distancia de visión por encima de 10.
- Tres cuartas partes del total en 1.8 a 1.11, porque sus chunks pesan menos.
El resultado se redondea hacia arriba a GB enteros y nunca baja de 3 GB (2 GB en 1.8 a 1.11). La mínima es más o menos dos tercios de esa cifra: el servidor funciona, pero con poco margen para los momentos de más actividad, la generación de chunks nuevos o las copias de seguridad. La calculadora no pasa de 31 GB, porque por encima de unos 32 GB Java desactiva los punteros comprimidos, y pasarse un poco de esa cifra deja menos memoria útil, no más.
Las cifras tiran hacia arriba a propósito. Quedarse corto de memoria hace que el servidor se trabe y acabe cerrándose, mientras que pasarse un poco solo cuesta algo más al mes.
Deja sitio a Java: heap y plan
-Xmx solo limita el heap. Java usa además memoria para las clases de cada plugin, sus hilos, el código que compila, los búferes de red y las cuentas internas del recolector de basura. La calculadora reserva para eso 1 GB o el 15 % del heap, lo que sea mayor, en línea con lo que aconseja Paper: darle a -Xmx entre 1000 y 1500 MB menos de la memoria que tienes. En la práctica:
- Si vas a contratar un plan, fíjate en el tamaño de plan que da la calculadora, no en el heap. Un heap de 8 GB necesita un plan de 10 GB.
- Si ya tienes plan, escríbelo en RAM de tu plan y las flags se ajustan para caber en él. Con un plan de 8 GB, el heap se queda en 6,5 GB.
- Pterodactyl, Docker y casi todos los hostings limitan el contenedor entero. Si Java se pasa, el servidor se cierra en el acto, muchas veces sin ningún error en la consola.
- En tu propio PC o VPS, deja memoria para el sistema operativo y para todo lo demás que tengas funcionando.
Por qué -Xms es igual a -Xmx
Las flags de Aikar ponen el mismo valor en -Xms y -Xmx y añaden -XX:+AlwaysPreTouch, que reserva todo el heap al arrancar. G1 funciona mejor con un heap que no crece ni encoge, y si la memoria no está de verdad, lo sabes al arrancar. Como efecto secundario, la gráfica de memoria del panel marca todo el heap ocupado desde el primer minuto. Es normal.
Flags de Aikar y ZGC
Las flags de Aikar ajustan el recolector G1 a la forma en que Minecraft usa la memoria: muchísimos objetos que duran un tick y pausas que tienen que ser cortas. Son las que recomienda Paper y sirven para servidores de cualquier tamaño. Con más de 12 GB de heap, la calculadora cambia a los valores de Aikar para heaps grandes: G1NewSizePercent=40, G1MaxNewSizePercent=50, G1HeapRegionSize=16M, G1ReservePercent=15 e InitiatingHeapOccupancyPercent=20.
ZGC es otro recolector que hace casi todo su trabajo mientras el servidor sigue funcionando, así que las pausas no llegan a un milisegundo. A cambio gasta más CPU, y solo tiene sentido con heaps grandes (16 GB o más) y núcleos de sobra. Usa la versión generacional: en Java 21 hace falta -XX:+ZGenerational, y desde Java 23 viene activada por defecto, así que la calculadora ya no pone esa flag. Si tienes dudas, quédate con G1.
Qué versión de Java
| Minecraft | Java |
|---|---|
| 26.1 y posteriores | 25 |
| 1.20 – 1.21.11 | 21 |
| 1.17 – 1.19.4 | 17 |
| 1.16.5 | 16 |
| 1.12 – 1.16.4 | 11 |
| 1.8 – 1.11 | 8 |
Es la tabla de la documentación de Paper. Mira cuál tienes con java -version. Si tienes varias instaladas, el script arranca la que responda al comando java.
Cómo arrancar el servidor
- Rellena los jugadores, los plugins, el software y la versión, y la RAM de tu plan si ya lo tienes.
- Elige un Script de arranque:
- start.sh para Linux y macOS. Guárdalo junto al jar, ejecuta
chmod +x start.shuna vez y luego./start.sh. - start.bat para Windows. Guárdalo junto al jar y ábrelo con doble clic. El
pausedel final deja la ventana abierta si el servidor se para, para que puedas leer el error. - Pterodactyl te da el comando de inicio con
{{SERVER_JARFILE}}, para que el panel ponga el jar. Después, dale al servidor en el panel al menos la memoria del plan. - Solo las flags es para hostings con un campo de argumentos JVM. Si el hosting fija la memoria por su cuenta, quita
-Xmsy-Xmx.
- start.sh para Linux y macOS. Guárdalo junto al jar, ejecuta
- Pulsa Copiar. Copiar enlace guarda tu configuración en el enlace.
Cuándo más RAM no arregla nada
Casi siempre el lag viene de la CPU: un servidor normal hace casi todo su trabajo en un solo hilo principal, así que un núcleo más rápido ayuda más que más memoria. Antes de ampliar, usa /spark health para ver la memoria y los TPS, y /spark profiler para ver qué se lleva el tiempo. spark viene incluido en Paper desde la 1.21. Bajar view-distance y simulation-distance ahorra memoria y CPU a la vez, y pregenerar el mundo con un plugin como Chunky evita los tirones de generar chunks nuevos mientras la gente juega.