Cómo reducir el ruido al 0,26% al ajustar un servidor para benchmarks
Una guía práctica de David Alvarez Rosa para hacer medibles mejoras del 2% eliminando el ruido del sistema operativo y el hardware.

David Alvarez Rosa ha publicado una guía detallada sobre cómo convertir un servidor heterogéneo en una máquina de pruebas determinista. El problema es que un binario idéntico puede variar varios por ciento entre ejecuciones si no se controla el entorno, lo que hace invisibles optimizaciones menores. El objetivo del autor no es maximizar la velocidad pico, sino eliminar la variabilidad para que las mediciones sean comparables.
El impacto de cada ajuste
El ejemplo parte de un benchmark simple que suma un array de doubles con pausas de 2 ms, simulando el comportamiento intermitente de un servicio real. En una máquina sin configurar, el coeficiente de variación (CV) es del 2,72%, demasiado ruido para detectar mejoras pequeñas.
El primer paso es entender la topología con lstopo. En CPUs híbridas, como el Intel Core Ultra 5 citado, caer en un núcleo de eficiencia en lugar de rendimiento cambia drásticamente el resultado. Fijar el proceso en un núcleo específico con taskset reduce el CV al 1,06%, ya que evita la migración y mantiene la caché caliente.
Desactivar el escalamiento de frecuencia por defecto de Linux y fijarlo en modo performance baja la variación al 0,79%. A continuación, deshabilitar el hiperhreading (SMT) mediante /sys/devices/system/cpu/smt/control elimina la interferencia del hermano de hardware, logrando un CV del 0,26%. Finalmente, desactivar el turbo boost impide que las variaciones de temperatura y consumo afecten a la frecuencia, aunque en ráfagas cortas como la del ejemplo este cambio no altera la media.
El código fuente de las pruebas está disponible en el repositorio de GitHub del autor. Esta metodología es crucial para cualquier equipo de desarrollo o SRE que necesite validar mejoras de rendimiento antes de desplegarlas en producción, donde el ruido del sistema puede enmascarar cambios significativos en la latencia o el throughput.
