Flags de Aikar para servidores Minecraft
Las Flags de Aikar son un conjunto de parámetros de la JVM (Java Virtual Machine) especialmente optimizados para servidores Minecraft. Fueron desarrolladas por Aikar (mantenedor de Paper) y son el estándar de la industria: prácticamente todo servidor Paper serio las usa.
Su objetivo principal es reducir las pausas de GC (Garbage Collector), que son la causa más frecuente de micro-lag en servidores Java.
Las flags
Para servidores con 12 GB de RAM o más
-Xms10G -Xmx10G
-XX:+UseG1GC
-XX:+ParallelRefProcEnabled
-XX:MaxGCPauseMillis=200
-XX:+UnlockExperimentalVMOptions
-XX:+DisableExplicitGC
-XX:+AlwaysPreTouch
-XX:G1NewSizePercent=30
-XX:G1MaxNewSizePercent=40
-XX:G1HeapRegionSize=8M
-XX:G1ReservePercent=20
-XX:G1HeapWastePercent=5
-XX:G1MixedGCCountTarget=4
-XX:InitiatingHeapOccupancyPercent=15
-XX:G1MixedGCLiveThresholdPercent=90
-XX:G1RSetUpdatingPauseTimePercent=5
-XX:SurvivorRatio=32
-XX:+PerfDisableSharedMem
-XX:MaxTenuringThreshold=1
-Dusing.aikars.flags=https://mcflags.emc.gs
-Daikars.new.flags=true
Para servidores con menos de 12 GB de RAM
-Xms4G -Xmx4G
-XX:+UseG1GC
-XX:+ParallelRefProcEnabled
-XX:MaxGCPauseMillis=200
-XX:+UnlockExperimentalVMOptions
-XX:+DisableExplicitGC
-XX:+AlwaysPreTouch
-XX:G1NewSizePercent=30
-XX:G1MaxNewSizePercent=40
-XX:G1HeapRegionSize=8M
-XX:G1ReservePercent=20
-XX:G1HeapWastePercent=5
-XX:G1MixedGCCountTarget=4
-XX:InitiatingHeapOccupancyPercent=15
-XX:G1MixedGCLiveThresholdPercent=90
-XX:G1RSetUpdatingPauseTimePercent=5
-XX:SurvivorRatio=32
-XX:+PerfDisableSharedMem
-XX:MaxTenuringThreshold=1
-Dusing.aikars.flags=https://mcflags.emc.gs
-Daikars.new.flags=true
-Xms y -XmxCambia los valores de -Xms y -Xmx según la RAM de tu plan. Deja siempre un margen: para un plan de 8 GB, usa -Xms6G -Xmx6G. Ambos deben ser iguales.
Cómo configurarlas en SkyPanel
Opción A: Variable de Startup (recomendado)
- En tu servidor, ve a Startup
- Busca el campo Java Flags o JVM Flags (el nombre exacto depende del egg)
- Pega las flags (sin
-Xmsni-Xmxsi esas se configuran por separado en otros campos) - Haz clic en Save y luego Restart
Opción B: Editar el script de arranque
Si el egg no tiene un campo separado para las flags:
- Ve a Startup
- Busca el campo Startup Command o similar
- Añade las flags antes del
-jar:
java [FLAGS_AQUÍ] -jar server.jar --nogui
¿Qué hace cada flag?
| Flag | Explicación |
|---|---|
-Xms / -Xmx | Memoria mínima y máxima del heap. Deben ser iguales para evitar resizing. |
-XX:+UseG1GC | Activa el recolector de basura G1, diseñado para heaps grandes con baja latencia. |
-XX:+ParallelRefProcEnabled | Procesa referencias en paralelo durante GC. Reduce las pausas. |
-XX:MaxGCPauseMillis=200 | Objetivo de pausa máxima de GC. G1 intentará no superar 200ms. |
-XX:+DisableExplicitGC | Ignora llamadas explícitas a System.gc() (algunos plugins/mods las hacen innecesariamente). |
-XX:+AlwaysPreTouch | Pre-aloca toda la memoria al arrancar. Evita picos de lag por allocación tardía. |
-XX:G1HeapRegionSize=8M | Tamaño de las regiones del heap de G1. 8M es óptimo para servidores Minecraft. |
-XX:InitiatingHeapOccupancyPercent=15 | GC empieza a limpiar cuando el heap está al 15%. Evita acumulación. |
-XX:+PerfDisableSharedMem | Desactiva la memoria compartida de JVM para estadísticas de rendimiento (reduce I/O). |
-XX:MaxTenuringThreshold=1 | Los objetos pasan rápido a la generación old, reduciendo copias innecesarias. |
Flags adicionales para Java 21+
Si tu servidor usa Java 21, añade también estas flags para aprovechar el Virtual Threads (Project Loom):
-XX:+UseZGC
-XX:+ZGenerational
G1GC es el recomendado estándar. ZGC (con soporte para generaciones desde Java 21) ofrece pausas de GC aún menores, especialmente en servidores con mucha RAM (16 GB+). Si tienes un plan premium, prueba ZGC.
Verificar que las flags se aplican
Después de reiniciar, busca en los logs de arranque:
JVM Flags: XX:... (las flags que configuraste)
También puedes ejecutar en consola:
/spark gcmonitor
Spark mostrará la frecuencia y duración de los ciclos de GC. Si las pausas son menores de 200ms y poco frecuentes, las flags funcionan correctamente.
Preguntas frecuentes
¿Puedo usar estas flags con Fabric o Forge?
Sí. Las flags de Aikar son genéricas para cualquier servidor Java. Funcionan con Paper, Spigot, Fabric, Forge y cualquier otro software de servidor Minecraft.
¿Qué pasa si pongo más RAM de la que tengo?
El sistema operativo matará el proceso Java por Out Of Memory (OOM). El servidor caerá. Siempre deja margen: si tu plan tiene 8 GB, no pongas más de 6-7 GB en las flags.
¿Debo usar -server o -client?
No es necesario especificarlo. La JVM moderna detecta automáticamente el modo server basándose en los recursos del sistema. Añadirlo no tiene efecto real.
Las flags no parecen tener efecto, ¿por qué?
Asegúrate de que:
- Reiniciaste el servidor después de guardar los cambios
- Las flags están en el campo correcto del egg (no en el nombre del servidor)
- Los valores de
-Xmsy-Xmxson iguales y no superan la RAM del plan
Fuentes y más información
- 📖 Página oficial de Aikar Flags
- 🔧 Calculadora de flags online
- 💬 Discord de MixelNodes — si tienes dudas