La respuesta rápida
Elimina primero los plugins mal optimizados, porque cuestan más que todo lo demás junto.
Después establece batching.colliders "0", limita fps.max entre 30
y 100, sube server.saveinterval "600", y valora nav_disable "true"
y ai.think 0 si puedes prescindir del movimiento de los animales.
Puntos clave
- Rust necesita velocidad de reloj, no número de núcleos. Las funciones core de Unity son de un solo hilo.
- Un plugin mal programado puede anular cualquier otra optimización de esta página.
- El FPS del servidor no es el FPS del jugador. Son números distintos que miden cosas distintas.
- Mide con el plugin Performance Monitor, y luego elimínalo. También cuesta rendimiento.
- Cada convar aquí es un intercambio. Sabe qué estás sacrificando antes de establecerla.
Qué afecta realmente al rendimiento
Un rendimiento constante es lo que tranquiliza a tus jugadores de que tienen un sitio seguro donde jugar, en el que no perderán un combate por el lag ni saldrán rebotando de un acantilado. Merece la pena ser precisos sobre de dónde viene, porque el tiempo dedicado a lo que no toca se desperdicia.
Aproximadamente por orden de impacto:
- Plugins. Uno solo mal escrito puede dominar cada tick del servidor.
- Velocidad de reloj de la CPU. El techo bajo el que opera todo lo demás.
- Recuento de entidades. Avanzado el ciclo de wipe, esto es lo que cambia bajo tus pies.
- Operaciones de guardado. En un mundo grande, se nota cada vez que se ejecutan.
Hardware: velocidad de reloj sobre número de núcleos
Verás un rendimiento del servidor drásticamente mejor con proveedores que usan CPU más rápidas, con reloj a partir de 3GHz. La razón es arquitectónica, no incidental: las funciones core de Unity son de un solo hilo, así que se ejecutan en un solo núcleo y no se pueden repartir entre otros. Una CPU de 32 núcleos a 2.2GHz ejecutará un servidor de Rust peor que una de 8 núcleos a 4GHz.
El número de núcleos no es irrelevante. Cosas como la IA de NPC y animales, y otros objetos relacionados con el mapa, se pueden repartir entre varios núcleos, por lo que los servidores con más población sí se benefician de núcleos adicionales. Un buen host debería ofrecer la opción de más núcleos para un servidor más grande, y debería alojar Rust en CPU de alta frecuencia desde el principio.
Esto es lo más útil que puedes comprobar antes de comprar. Si un host anuncia el número de núcleos y la RAM pero no la velocidad de reloj, normalmente es porque la velocidad de reloj no es el punto fuerte.
Plugins: el factor individual más importante
uMod es un addon de modding para Rust que permite a los servidores ejecutar plugins desarrollados en su mayoría por la comunidad. El rendimiento del servidor no se verá afectado por plugins bien escritos y mantenidos activamente.
Sí lo destruirá uno malo. Sin que te des cuenta, un pequeño trozo de código en cualquiera de tus plugins podría degradar gravemente el rendimiento de tu servidor, y no hay nada en el tamaño o la aparente sencillez de un plugin que te diga cuál es. Incluso el plugin más pequeño y de aspecto más ligero puede causar el caos, como confirmará cualquier propietario de servidor de Rust o desarrollador de plugins con experiencia.
Evita ejecutar demasiados plugins. El número en sí tiene un coste, al margen de la calidad de cada uno, y la respuesta a un problema suele ser quitar un plugin más que añadir otro.
Optimizar los plugins que conservas
Algunos plugins exponen ajustes de rendimiento como temporizadores e intervalos. Suelen estar desactivados por defecto o configurados de forma conservadora. Mira en el archivo de configuración del plugin y actívalos, porque un plugin que consulta en cada tick cuando podría hacerlo cada treinta segundos está haciendo treinta veces más trabajo del necesario.
Medir antes de cambiar nada
Adivinar los problemas de rendimiento desperdicia tiempo. Hay dos mediciones que merece la pena tomar.
FPS del servidor
Esta es la velocidad de fotogramas a la que opera el servidor. No tiene influencia
directa en la velocidad de fotogramas de tus jugadores, aunque un recuento alto de
entidades en una zona afectará a ambos. Contrólalo por RCON con el comando FPS.
El plugin Performance Monitor
Performance Monitor para uMod informa en tiempo real del uso de memoria, del tiempo de hook de los plugins y de otros tiempos que afectan al rendimiento del servidor. Te mostrará qué plugin consume más tiempo en un solo hook, lo que convierte "el servidor va mal" en un nombre concreto.
No dejes el Performance Monitor en marcha de forma indefinida. La propia monitorización consume recursos y empeorará el rendimiento que intentas medir. Instálalo, toma tus lecturas, actúa según ellas, y luego descárgalo.
Las convars que importan
Cada una de estas es un intercambio, no rendimiento gratis. Las ganancias son reales, y también lo que sacrificas.
batching.colliders "0"
Elimina la necesidad de que el servidor agrupe entidades. Es una ganancia de rendimiento grande: con el agrupado activado, cada vez que alguien construye, el servidor tiene que desagrupar y luego volver a agrupar todas las entidades relacionadas.
La advertencia: si tu servidor supera las 265,000 entidades tendrás que reactivarlo para sortear el límite de entidades de Unity. Avanzado un ciclo de wipe largo en un servidor con mucha actividad, ese es un número real y no teórico, así que merece la pena vigilarlo.
nav_disable "true"
Desactiva el NAV mesh de tu servidor. La ganancia de rendimiento es grande. El coste es que los animales y NPC dejan de moverse por completo.
Si eso es aceptable depende de tu servidor. En un servidor muy centrado en PvP donde nadie caza ciervos, es casi gratis. En un servidor PvE o de rol, elimina una parte significativa del juego.
ai.think 0
Puede que hayas notado en servidores grandes que los animales no reaccionan ni se defienden.
Eso es ai.think puesto a 0. Tiene un efecto positivo importante en el rendimiento,
sobre todo cuando el número de jugadores es alto y suelen estar cerca de animales.
server.saveinterval "600"
Puedes ver caídas de FPS del lado del servidor cuando este guarda en un servidor con muchas entidades. Aumentar la duración entre guardados mantiene eso al mínimo.
El intercambio aquí es riesgo: un intervalo más largo significa más progreso perdido si el servidor falla entre guardados. 600 segundos es un equilibrio razonable, pero si tu servidor es inestable por otras razones, no arregles el síntoma haciendo los fallos más caros.
fps.max
Controlar el FPS de tu servidor es una buena idea en general, para evitar que trabaje más de
lo necesario sin ningún beneficio para tus jugadores. Facepunch ha dicho que los jugadores no
notarían un servidor limitado a 30 fotogramas por segundo. Se recomienda encarecidamente
establecer fps.max en un número entre 30 y 100.
Reinicios
Los reinicios diarios pueden ayudar al rendimiento en servidores con mods. Los procesos de larga duración acumulan presión de memoria, y los plugins con fugas lentas son lo bastante comunes como para que un reinicio programado sea una póliza de seguro razonable.
Prográmalos en una hora tranquila y anúncialos. global.restart da a los jugadores
un aviso de 300 segundos en intervalos de 5 segundos, tiempo suficiente para ponerse a salvo.
Un reinicio silencioso en mitad de un raid te hará perder más jugadores de los que ganes con
la mejora de rendimiento.
Qué hacer, en orden
-
Mide primero
Comprueba el FPS del servidor por RCON y ejecuta el Performance Monitor brevemente. Sin una base de referencia no puedes saber si algo de lo que hiciste ayudó.
-
Elimina el peor plugin
El que haya señalado el monitor. Casi siempre es la mayor mejora disponible por sí sola, y es gratis.
-
Ajusta los plugins que conservas
Temporizadores e intervalos en sus archivos de configuración, donde existan.
-
Aplica las convars
Empieza por
batching.colliders "0",fps.maxyserver.saveinterval, que no te cuestan nada que tus jugadores vayan a notar. Valoranav_disableyai.thinksolo si puedes aceptar una fauna estática. -
Mide de nuevo
Las mismas herramientas, las mismas condiciones, idealmente con un número de jugadores similar. Después descarga el monitor.
-
Mira el hardware
Si has hecho todo lo anterior y el rendimiento sigue siendo pobre, el techo es la CPU, y ninguna configuración lo supera.
Si estás en ese último paso, nuestra guía sobre qué buscar al comprar un servidor de Rust cubre qué preguntar a un host antes de cambiarte.