Si tu servidor tiene:
Entonces necesitas analizar el rendimiento del servidor.
Aunque antiguamente se utilizaba Timings, hoy en día la mejor opción es Spark, una herramienta mucho más moderna, precisa y fácil de leer.
Spark es una herramienta de diagnóstico que analiza qué está consumiendo recursos en tu servidor.
Puede detectar:
Esto ayuda muchísimo a encontrar la causa real del lag en lugar de simplemente “adivinar”.
Spark viene integrado en versiones modernas de Paper.
Si utilizas:
Probablemente ya lo tienes disponible.
Si utilizas cualquier otro JAR (Fabric, Forge, Sponge, etc.), tendrás que descargar Spark e instalarlo como cualquier otro plugin/mod; para eso, dirígete a https://spark.lucko.me/ y descarga la versión para tu JAR.
Dentro del juego o desde la consola del servidor, ejecuta:
spark profiler start
Esto comenzará a analizar el rendimiento del servidor en tiempo real.
Ahora simplemente:
Spark correrá de fondo; su uso no impactará en el rendimiento del servidor, pues solo monitorea.
⏱️ Recomendamos esperar entre 10 y 20 minutos para obtener resultados precisos.
Mientras más actividad haya, más útil será el reporte.
Cuando termine el tiempo de prueba, ejecuta:
spark profiler stop
Spark generará automáticamente un enlace parecido a este:
Abre ese enlace en tu navegador.
Al abrir el reporte verás muchísima información, pero no te preocupes: aquí está lo importante para usuarios nuevos.
El TPS indica qué tan fluido funciona el servidor.
Minecraft funciona idealmente a:
20 TPS
Si el TPS baja constantemente, algo está sobrecargando el servidor.
Los MSPT son los milisegundos por tick, que indican cuántos MS le toma al servidor procesar cada tick; mientras más alta sea la cantidad de segundos, más lag verás en el servidor.
El uso de CPU toma en cuenta que el 100% de uso significa que el servidor está usando 1 núcleo; no que está literalmente usando todo el procesador.
Minecraft es un juego que aprovecha el procesador para hacer diferentes tareas; si muchas tareas se ejecutan al mismo tiempo, el uso del CPU aumentará, causando lag en el servidor. Las tareas que consumen CPU son:
Procura mantener un balance entre entidades, precarga tus mundos y limita el uso de granjas.
En este apartado se mide cuánta RAM está usando el servidor y el límite que tiene el contenedor. La memoria RAM almacena información temporal y caché; se limpia en cada reinicio de servidor. Su uso aumenta con cada mod, plugin y jugador.
Cuando abres un reporte de Spark, probablemente lo primero que notarás son muchísimos porcentajes en rojo, amarillo y naranja. A simple vista puede parecer que “todo está mal”, pero en realidad los porcentajes en Spark pueden ser engañosos si no sabes interpretarlos correctamente.
Lo más importante NO son los colores ni el porcentaje grande: lo importante son las funciones y qué está ejecutando realmente el servidor.
Por ejemplo, en la captura de arriba:
MinecraftServer.runServer() aparece usando 100%Thread.run() también muestra 100%parkNanos() aparece con 99.98%Eso NO significa que esas funciones estén causando lag.
En realidad, muchas veces simplemente indican:
parkNanos() y Unsafe.park()Si ves algo como:
LockSupport.parkNanos()
Unsafe.park()
Y tienen porcentajes enormes (90%-100%), eso normalmente es BUENA señal.
Significa que:
Básicamente, el servidor está “descansando” mientras espera el siguiente tick.
Debes enfocarte en:
Si una misma función aparece constantemente en muchas ramas del reporte, probablemente ahí está el problema.
Por ejemplo:
entityTick()
hopperTick()
pathfinding()
o nombres de plugins específicos.
Busca plugins apareciendo dentro del árbol.
Por ejemplo:
com.pluginname...
me.algunplugin...
org.bukkit.plugin...
Si un plugin ocupa mucho tiempo constantemente, podría estar causando lag.
Algunas muy comunes:
tickEntities()
mobTick()
entityActivationCheck()
Esto normalmente indica:
Funciones como:
hopperTick()
tileEntityTick()
Pueden indicar:
Funciones relacionadas con:
chunkGeneration
distanceManager
worldgen
Pueden significar:
Los porcentajes en Spark son relativos al tiempo total analizado.
Eso significa que una función puede mostrar 90%, pero realmente consumir casi nada útil, simplemente porque el servidor estaba esperando.
Por eso: ⚠️ Nunca te fijes SOLO en el número grande.
Muchos usuarios abren Spark y ven:
100% CPU USAGE
y piensan que el servidor está muriendo.
Pero en realidad, el árbol de funciones es muchísimo más importante que el porcentaje mostrado.
Spark es una herramienta avanzada, y aprender a leer funciones correctamente es la clave para diagnosticar lag real.
parkNanos()No pasa nada. Spark puede ser confuso al principio.
Si necesitas ayuda:
Así podremos ayudarte a identificar exactamente qué está causando el lag en tu servidor.