Saltar al contenido principal

Ajuste del servidor de Rust

Cómo mejorar el rendimiento del servidor de Rust

El rendimiento del servidor es lo que evita que los jugadores pierdan combates por el lag o salgan rebotando de un acantilado. En su mayor parte se reduce a tres cosas: la velocidad de reloj de la CPU, los plugins que ejecutas, y unas cinco convars.

  • Guías de Rust
  • Actualizado el
  • 9 min de lectura
  • Velocidad de reloj de la CPU
  • Sobrecarga de plugins
  • 5 convars clave
CONVARS CLAVEserver.cfgbatching.colliders "0" # reactívalo por encima de 265k entidadesnav_disable "true" # los animales y NPC dejan de moverseserver.saveinterval "600"ai.think 0fps.max 30 # el rango útil es de 30 a 100

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:

  1. Plugins. Uno solo mal escrito puede dominar cada tick del servidor.
  2. Velocidad de reloj de la CPU. El techo bajo el que opera todo lo demás.
  3. Recuento de entidades. Avanzado el ciclo de wipe, esto es lo que cambia bajo tus pies.
  4. 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

  1. 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ó.

  2. Elimina el peor plugin

    El que haya señalado el monitor. Casi siempre es la mayor mejora disponible por sí sola, y es gratis.

  3. Ajusta los plugins que conservas

    Temporizadores e intervalos en sus archivos de configuración, donde existan.

  4. Aplica las convars

    Empieza por batching.colliders "0", fps.max y server.saveinterval, que no te cuestan nada que tus jugadores vayan a notar. Valora nav_disable y ai.think solo si puedes aceptar una fauna estática.

  5. Mide de nuevo

    Las mismas herramientas, las mismas condiciones, idealmente con un número de jugadores similar. Después descarga el monitor.

  6. 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.

Más guías para quienes gestionan su propio servidor de Rust.

Respuestas rápidas

Preguntas frecuentes

Por orden de impacto: un plugin mal escrito que consume tiempo de hook, una CPU con una velocidad de reloj baja, un recuento de entidades muy alto, y las operaciones de guardado en un mundo grande. Los plugins son el culpable habitual porque uno solo mal programado puede dominar cada tick sin importar lo bueno que sea el hardware.

La velocidad de reloj importa más que el número de núcleos. Las funciones core de Unity son de un solo hilo, así que una CPU por encima de 3GHz marca una diferencia enorme. Los núcleos adicionales sí ayudan con la IA y el trabajo relacionado con el mapa, por lo que los servidores con más población se benefician de tenerlos, pero una CPU con muchos núcleos y un reloj bajo tiene la forma equivocada para Rust.

Entre 30 y 100. Facepunch ha dicho que los jugadores no notarán un servidor limitado a 30 fotogramas por segundo, y dejar que el servidor trabaje más de lo necesario no aporta nada a tus jugadores. Limitarlo libera capacidad para el trabajo que sí afecta a la jugabilidad.

Sí, de forma significativa, pero tiene un coste. Establecer nav_disable "true" desactiva el NAV mesh, lo que da una ganancia de rendimiento grande y hace que los animales y NPC dejen de moverse por completo. Si ese cambio es aceptable depende por completo del tipo de servidor que lleves.

Elimina la necesidad de que el servidor agrupe entidades. Es una ganancia de rendimiento grande, porque con el agrupado activado el servidor tiene que desagrupar y volver a agrupar todas las entidades relacionadas cada vez que alguien construye. La advertencia es real: por encima de 265,000 entidades tienes que reactivarlo para sortear el límite de entidades de Unity.

Usa el plugin Performance Monitor para uMod, que informa del uso de memoria y de los tiempos de hook de los plugins y te mostrará qué plugin consume más tiempo en un solo hook. No lo dejes en marcha de forma permanente, porque la propia monitorización cuesta rendimiento.

Hosting de Rust en hardware de alta velocidad de reloj

Rust es de un solo hilo donde importa, por eso lo ejecutamos en CPU de alta frecuencia en nuestro propio centro de datos del Reino Unido en vez de en lo que tenga más núcleos.

  • Centro de datos en el Reino Unido
  • CPU de alta frecuencia
  • Soporte por ticket y Discord