Rendimiento y memoria
VanillaMine está ajustado para mover el juego vanilla (mobs, redstone, el generador vanilla) tanto en servidores pequeños como grandes. Los valores por defecto sirven para casi todos; esta página explica los pocos ajustes que conviene conocer.
Perfil de rendimiento
performance-profile en server.properties elige cómo usa los recursos el servidor. Los dos perfiles se juegan exactamente igual: mismo juego, mobs, terreno y distancia de visión.
| Perfil | Para | Qué cambia |
|---|---|---|
performance / rendimiento (por defecto) | Máquinas dedicadas, servidores con jugadores casi siempre | Memoria y CPU preparadas para un servidor más fluido. |
economy / ahorro | Planes pequeños, servidores que a menudo están vacíos | Los chunks sin usar se descargan a los 10 s (en vez de 30), cachés de mundo más pequeñas (4 MB en vez de 16 MB por mundo), como mucho 2 workers asíncronos, 1 worker de generación, los workers inactivos se paran a los 60 s (en vez de 300). Los chunks nuevos pueden tardar un poco más en aparecer. |
Con 100 bots explorando un mundo nuevo, economy usó un 15 % menos de memoria con los mismos TPS y CPU. El perfil activo sale en el log al arrancar.
Los ajustes de pocketmine.yml marcados con [profile] en la referencia siguen al perfil mientras conserven su valor de fábrica; cualquier valor que pongas tú manda.
Binarios de PHP
Usa los binarios de PHP de VanillaMine: su extensión chunkutils2 ejecuta en nativo las partes más pesadas (serialización de chunks, iluminación, ticks aleatorios, física de entidades, búsqueda de caminos). El servidor también arranca con binarios más antiguos, sin esas mejoras.
El JIT de PHP reduce la CPU de PHP del servidor entre un 5 y un 30 %, según la carga. PHP-Binaries lo trae desactivado; el egg de Pterodactyl lo activa (PHP_JIT=tracing). En otros casos, cambia esta línea de bin/php/php.ini (el búfer del JIT ya viene configurado):
opcache.jit=tracingMemoria
Casi toda la memoria de un servidor recién arrancado es el generador de mundos vanilla: cada worker asíncrono que genera terreno tiene su propia copia (~150-200 MB).
settings.async-workers: autousa los núcleos que el contenedor puede usar (respeta el límite de CPU y el pinning), menos 2, entre 2 y 4 workers.chunk-generation.max-workers(por defecto2): solo estos workers generan terreno; los demás se quedan pequeños.memory.async-worker-idle-timeout(por defecto300s): los workers inactivos se paran y devuelven su memoria.- En un host con poca RAM, usa el perfil
economy, unaview-distancemás baja y pregenera el mundo antes de abrirlo a los jugadores.
Ticks y jugadores
chunk-ticking.simulation-distance(por defecto4): radio de chunks alrededor de cada jugador en el que hacen tick los mobs y los bloques, como la distancia de simulación de los mundos de Bedrock. Los jugadores siguen viendoview-distancechunks.chunk-sending.fast-spawn(activado por defecto): los chunks del spawn se preparan mientras el jugador aún está iniciando sesión, así que entrar tarda alrededor de un segundo menos.auto-save.tick-budget-ms(por defecto5): los autoguardados se reparten entre ticks en vez de congelar el servidor.mobs.disabled-worlds: mundos sin mobs (lobbies), sin ningún coste de IA de mobs.
Medir
/status muestra TPS, carga del tick y memoria; un servidor sano se mantiene en 20 TPS. Para ver en qué se va el tiempo del tick, ejecuta /timings on, juega unos minutos y luego /timings report.
