BBR
BBR es un algoritmo TCP de optimización de congestión de redes de código abierto desarrollado por Google, que se compromete a resolver dos problemas: aprovechar al máximo el ancho de banda en enlaces de red con una determinada tasa de pérdida de paquetes. Reducir la ocupación de búfer en enlaces de red para disminuir la latencia. El objetivo del control de congestión TCP es maximizar el ancho de banda de los enlaces de cuello de botella en la red.
TCP BBR es un conjunto de algoritmos de control de congestión TCP diseñados y publicados por Google. Debido al lento retraso en proporcionar soporte para el nuevo kernel, y al soporte por defecto para TCP BBR desde el kernel Linux 4.9, se ha convertido gradualmente en la primera opción para la aceleración unilateral del servidor. BBRplus es una versión mejorada del BBR original modificada por el internauta de CSDN dog250. BBRv2, en cambio, es una continuación del BBR original y aún está en beta.
Sin embargo, ante una gran variedad de derivados de BBR, es raro ver reseñas de comparación horizontal de ellos en Internet. Algunas de las evaluaciones existentes suelen basarse en la experiencia y en impresiones subjetivas, o en pruebas fuera del sitio con variables incontrolables. Así que Reizhi decidió tomarse el tiempo para hacer una prueba horizontal local de BBR, BBRplus y BBR2 para averiguarlo.
Entorno de prueba
Utiliza la estación de trabajo VMware para abrir dos máquinas virtuales Debian, de la cual la máquina A es el servidor, configurar un servicio web a través de Nginx y colocar un archivo de 100mb para la prueba de velocidad de descarga; La máquina B es una máquina cliente, y usas wget para descargar. Las dos máquinas virtuales están conectadas a través de una red interna virtual y ambas están en SSDs SSD.
Metodología de prueba
La tarjeta de red de la máquina A se ajusta a un retardo de 150 ms ± 15 ms (fluctuaciones aleatorias) a través del comando tc, y se utiliza una pérdida de paquetes del 8% para simular un entorno general de red. Después de instalar diferentes aceleraciones de desviación BBR, descarga el archivo de prueba de 100MB en la máquina B a través de wget varias veces (≥5 veces), y obtén la velocidad media de la más rápida 3 veces.
Resultados de las pruebas
Veamos directamente los resultados de la prueba: BBRv2, que aún está en beta, es el más lento en esta prueba, con casi la misma velocidad que el algoritmo cúbico predeterminado en el kernel 4.19. Sorprendentemente, BBRplus, aunque significativamente más rápido que el BBR original, está muy por detrás con 5,5 núcleos.
Lo que me sorprendió mucho en mis pruebas fue que la rama BBRplus subió muy rápido tras iniciar la descarga. Pero por alguna razón, cuando la descarga avanza hasta aproximadamente el 50% ~ 60%, la velocidad baja de repente. El siguiente gráfico muestra completamente los cambios de velocidad de BBRplus 4.14.129.
BBRplus 14.04.129
Al principio, Reizhi pensó que era un error de prueba u otras razones, pero tras reiniciar, reinstalar el sistema, reinstalar el kernel, compilar manualmente el kernel y activar BBRplus, etc., no mejoró. En el mismo entorno de prueba, el rendimiento de velocidad de BBR 5.5 es mucho más estable.
BBR 5.5.10
Aunque BBR 5.5.10 no es tan rápido como BBRplus en cuanto a aceleración inicial y velocidad máxima, mantiene una velocidad muy buena durante todo el proceso de descarga, y el consumo total de tiempo es mucho menor que BBRplus. ¿Significa esto que BBRplus está mejor preparado para ráfagas de tráfico pequeño, mientras que BBR destaca en grandes volúmenes y con un rendimiento sostenido?
Anotaciones
En esta prueba, también probamos Sharp Speed y Net-speeder, pero al igual que en BBR2, su velocidad total es solo de dos dígitos, por lo que los resultados no se incluyen aquí.
BBR2 5.4.0-rc6
Lo anterior es la velocidad de BBR2, que no se descargó completamente debido a la baja velocidad.
Enlace original:El inicio de sesión del hipervínculo es visible.
|