Rendimiento y lag

Pausas de recolección de basura

Revisado el 6 de septiembre de 2026 2 min de lectura

Si tu servidor se congela del todo un segundo o dos y luego sigue como si nada, ese patrón tiene una causa concreta y no es un plugin.

Lo que estás viendo

  • Todo se para a la vez —mobs, chat, romper bloques— y luego se reanuda con normalidad.
  • Pasa a intervalos, no de forma continua.
  • Las medias de TPS parecen aceptables porque la congelación es corta y el resto del minuto va bien.

Por qué pasa

Java recupera la memoria sin usar por ciclos. Cuando el montón es grande o está casi lleno, algunos de esos ciclos tienen que parar todos los hilos mientras trabajan. El servidor no va lento durante una pausa: está parado.

Qué hacer

  1. Confírmalo con el registro

    El servidor escribe Can't keep up! Is the server overloaded? con una duración. Mensajes repetidos de duración parecida a intervalos regulares apuntan a pausas de recolección y no a carga.

  2. No toques los parámetros de arranque

    Tu servidor ya arranca con las flags de Aikar, afinadas justo para esto. Sustituirlas por ajustes de un post cualquiera de un foro suele empeorar las pausas, no mejorarlas.

  3. Reduce lo que hay en memoria

    Las pausas escalan con cuántos datos vivos hay que examinar. Bajar la distancia de renderizado, tener menos entidades cargadas y menos chunks permanentemente cargados las acorta todas.

  4. Comprueba si simplemente estás al límite

    Un montón que va siempre casi lleno recolecta sin parar. /spark heapsummary enseña cuánta holgura queda; si no queda casi ninguna, este es el caso de memoria en que un plan mayor sí ayuda de verdad.

Cómo saber que ya está

Las congelaciones se acortan y se espacian, y las líneas Can't keep up! dejan de agruparse a intervalos regulares.

Conviene saberlo

Una pausa suelta después de una operación pesada —un guardado del mundo, un pegado grande— es normal y no merece investigación. Lo que indica un problema es el ritmo regular.