Optimizar un servidor Java: distancias, mobs y Paper
Antes de tocar nada, mide. Después cambia pocas cosas, una a una, y vuelve a medir. Estos son los ajustes que más TPS devuelven en un servidor Paper, sin romper la jugabilidad.
Los nombres y valores por defecto de las opciones cambian entre versiones de Paper y Spigot. Si una opción no existe en tu versión, ignórala y consulta la documentación de Paper. Haz un backup antes de empezar.
1. Mide primero
/tpsen la consola: un servidor sano está en 20 TPS. Por debajo de 15 se nota; por debajo de 10 es casi injugable./mspt(Paper): milisegundos por tick. Mientras sea menor de 50, el servidor va bien.- Instala spark y lanza
/spark profiler start, espera uno o dos minutos con lag y para con/spark profiler stop. Te da un enlace con qué consume más.
2. Distancias (el cambio que más se nota)
# Chunks que se envían a cada jugador (visual)
view-distance=8
# Chunks donde se simulan entidades, redstone y cultivos
simulation-distance=6
Una referencia: con pocos jugadores view-distance 10 y simulation-distance 8; con muchos, 6-8 y 4-6. No bajes view-distance de 5 ni simulation-distance de 4: el mundo se ve recortado y las granjas dejan de funcionar.
3. Límites de mobs
spawn-limits:
monsters: 50
animals: 8
water-animals: 3
water-ambient: 10
ambient: 4
Son valores moderados frente a los de fábrica (70 / 10 / 15 / 20 / 15). Reducirlos baja bastante el uso de CPU sin que se note al jugar.
4. Entidades lejanas
world-settings:
default:
mob-spawn-range: 6
entity-activation-range:
animals: 16
monsters: 24
raiders: 48
misc: 8
water: 8
villagers: 16
flying-monsters: 32
entity-tracking-range:
players: 48
animals: 48
monsters: 48
misc: 32
other: 64
merge-radius:
item: 3.5
exp: 6.0
Las entidades lejos de los jugadores piensan menos, y los objetos y la experiencia del suelo se fusionan en uno solo (menos entidades).
5. Ajustes de Paper
environment:
optimize-explosions: true
misc:
redstone-implementation: ALTERNATE_CURRENT
chunks:
max-auto-save-chunks-per-tick: 8
optimize-explosionsacelera el cálculo de explosiones (TNT, creepers).ALTERNATE_CURRENTes un motor de redstone más eficiente y compatible con la mayoría de circuitos.max-auto-save-chunks-per-tickreparte el guardado automático para evitar picos de lag.
El anti-xray de Paper consume CPU: déjalo desactivado salvo que lo necesites.
6. Pregenera el mapa
Generar chunks nuevos mientras la gente explora es una causa típica de lag. Con el plugin Chunky lo haces de antemano, con el servidor vacío:
/chunky radius 5000
/chunky start
Un radio de 3000-5000 bloques suele bastar. Tardará un rato y el servidor irá más lento mientras tanto.
7. Lo que no se ve en la configuración
- Las flags de Aikar reducen las pausas del recolector de basura.
- Los plugins: unos pocos bien hechos pesan menos que muchos mediocres. Con spark ves cuál consume más.
- La RAM: más memoria no arregla un servidor lento por CPU. Mira cuánta RAM necesita un servidor.
Más contexto en Cómo reducir el lag.
Preguntas frecuentes
¿Cuál es el ajuste que más ayuda?
Casi siempre simulation-distance y view-distance, seguidos de pregenerar el mapa y revisar con spark qué plugin pesa más.
¿Cambiar estos valores rompe las granjas?
Con los valores de esta guía, no. Las granjas dejan de funcionar fuera de la distancia de simulación, así que no bajes esa por debajo de 4.