Optimización de recursos
Esta guía cubre las técnicas más efectivas para maximizar el rendimiento de tu servidor Minecraft en MixelNodes. Está orientada a servidores que ya tienen jugadores y quieren mejorar los TPS (ticks por segundo) y reducir el lag.
Un servidor sano debe mantener 20 TPS estables. Por debajo de 15 TPS los jugadores empezarán a notar lag significativo. Por debajo de 10 TPS el servidor es prácticamente injugable.
1. Selección del software de servidor
El software que uses tiene el mayor impacto en el rendimiento:
| Software | Base | Rendimiento | Plugins | Mods |
|---|---|---|---|---|
| Vanilla | Mojang | Bajo | ❌ | ❌ |
| Spigot | Bukkit | Medio | ✅ | ❌ |
| Paper | Spigot | Alto | ✅ | ❌ |
| Purpur | Paper | Alto+ | ✅ | ❌ |
| Fabric + Lithium | Fabric | Alto | ❌ | ✅ |
| Forge + Performant | Forge | Medio | ❌ | ✅ |
Recomendación: Para servidores de plugins, usa Paper o Purpur. Para servidores de mods, usa Fabric con Lithium + Starlight.
2. Flags de Java (JVM)
Las flags de arranque de la JVM son el segundo factor más importante. Usa las Flags de Aikar como base — son el estándar de la industria para servidores Minecraft.
Consulta la guía completa: Flags de Aikar
Resumen rápido para configurarlas en SkyPanel:
- Ve a Startup en tu servidor
- Busca el campo de Java Flags o JVM Flags
- Pega las flags (ver guía de Aikar)
- Guarda y reinicia
3. Asignación de RAM
¿Cuánta RAM necesito?
| Jugadores | Plugins | RAM recomendada |
|---|---|---|
| 1-10 | Pocos (<10) | 2 GB |
| 10-30 | Moderados (10-30) | 4 GB |
| 30-60 | Muchos (30+) | 6-8 GB |
| 60-100 | Muchos | 10-12 GB |
| 100+ | Muchos | 16 GB+ |
Regla de oro
No asignes toda la RAM del plan al heap de Java. El sistema operativo y el proceso Wings también necesitan memoria. Deja siempre un 10-15% libre.
Ejemplo para un plan de 8 GB:
-Xms6G -Xmx6G— correcto-Xms8G -Xmx8G— incorrecto (puede causar OOM)
Configura siempre -Xms igual a -Xmx. Esto evita que la JVM esté constantemente redimensionando el heap, lo que genera pausas de GC innecesarias.
4. Configuración de Paper
paper-global.yml
# Usa async chunk loading/saving (muy importante)
chunk-loading-basic:
autoconfig-send-distance: true
# Limitar el número de chunks que se cargan a la vez
chunk-loading-advanced:
player-max-concurrent-loads: 4.0
server-max-concurrent-loads: 4.0
# Desactiva el anti-xray si no lo necesitas (consume mucho CPU)
anticheat:
anti-xray:
enabled: false
paper-world-defaults.yml
entities:
spawning:
# Desactiva spawners vanilla en zonas con spawners de plugins
duplicate-uuid:
mode: SAFE_REGEN
chunks:
# Tiempo antes de que un chunk inactivo se descargue (en ticks, 20t = 1s)
# Reducir esto libera memoria en servidores con mucha exploración
auto-save-interval: 6000
environment:
# Reduce el delay de los relámpagos (impacto mínimo en rendimiento)
optimize-explosions: true
misc:
# Distancia a la que los items del suelo se apilan automáticamente
# Reduce el número de entidades
redstone-implementation: ALTERNATE_CURRENT
5. Configuración de spigot.yml
world-settings:
default:
# Reducir el rango de activación de entidades alivia mucho el CPU
entity-activation-range:
animals: 16
monsters: 24
raiders: 48
misc: 8
water: 8
villagers: 16
flying-monsters: 32
# Reduce la frecuencia de "pensar" de entidades inactivas
entity-tracking-range:
players: 48
animals: 48
monsters: 48
misc: 32
other: 64
# Frecuencia de tick de entidades lejanas (1 = cada tick, 4 = cada 4 ticks)
tick-inactive-villagers: false
# Cuántos chunks se cargan por tick al generarse terreno nuevo
# Reducir evita picos de lag cuando los jugadores exploran
max-bulk-chunks: 10
# Fusiona items cercanos en el suelo (menos entidades)
merge-radius:
item: 3.5
exp: 6.0
6. Vista y distancia de simulación
En server.properties:
# Chunks que se envían a cada cliente (visual)
view-distance=8
# Chunks donde se simulan entidades y redstone
simulation-distance=6
| Jugadores simultáneos | view-distance | simulation-distance |
|---|---|---|
| 1-20 | 10 | 8 |
| 20-50 | 8 | 6 |
| 50-100 | 6 | 5 |
| 100+ | 5 | 4 |
Con view-distance menor que 5, el mundo se verá muy recortado y los jugadores tendrán peor experiencia. simulation-distance menor que 4 puede romper mecánicas de redstone y farms.
7. Límites de spawn de mobs
En bukkit.yml:
spawn-limits:
monsters: 50 # default: 70
animals: 8 # default: 10
water-animals: 3 # default: 5
water-ambient: 10 # default: 20
ambient: 5 # default: 15
Reducir estos valores es una de las formas más efectivas de bajar el uso de CPU sin afectar la jugabilidad perceptiblemente.
8. Plugins de optimización recomendados
| Plugin | Función | Descarga |
|---|---|---|
| Spark | Profiler de rendimiento. Imprescindible para diagnosticar lag. | spark.lucko.me |
| ClearLag | Limpia entidades y items del suelo periódicamente | Spigot |
| FarmControl | Limita automáticamente el tamaño de granjas | Spigot |
| EntityCleaner | Elimina entidades duplicadas o stuck | Spigot |
Usar Spark para diagnosticar lag
# En la consola o como OP en el juego:
/spark profiler start
# espera 1-2 minutos de lag
/spark profiler stop
Spark te dará un enlace con un informe detallado de qué está consumiendo más CPU.
9. Pregenerar el mapa
Una de las causas más comunes de lag es la generación de chunks en tiempo real cuando los jugadores exploran. Pregenerar el mapa elimina este problema.
Con el plugin Chunky (recomendado):
# En la consola:
/chunky radius 5000
/chunky start
Esto pregenerará un área de 5000 bloques de radio alrededor del spawn. Dependiendo del hardware, puede tardar varios minutos — es normal que el servidor tenga algo de lag durante la pregeneración.
Lo ideal es pregenerar el mapa antes de que los jugadores empiecen a explorar, cuando el servidor está vacío.
10. Monitorización continua
Comandos útiles en consola
# Ver TPS actual
/tps
# Ver uso de memoria
/memory
# Ver entidades totales por mundo
/paper entity
Señales de alerta
| Síntoma | Causa probable | Solución |
|---|---|---|
| TPS < 18 constante | Demasiadas entidades o chunks | Reducir spawn limits, view-distance |
| Picos de lag al explorar | Generación de chunks | Pregenerar el mapa |
| Lag al activar redstone | Circuitos ineficientes | Revisar las granjas, usar ALTERNATE_CURRENT |
| Lag con muchos jugadores | RAM insuficiente | Aumentar el plan o reducir plugins |
| GC pauses frecuentes | Mal configuración de JVM | Revisar flags de Aikar |