reducir diez veces el tráfico de medios utilizando servidores de almacenamiento en caché / Sudo Null IT News

¡Hola Habr! Mi nombre es Roman Karmalov, en MTS Digital dirijo un grupo que respalda la infraestructura, incluido el funcionamiento de servidores proxy. La empresa realiza periódicamente retransmisiones corporativas online: las ven entre dos y quince mil personas. Si no se toman las medidas necesarias, esto provocará una carga que puede “caer” la infraestructura interna de la empresa. En nuestro caso, la solución al problema fue el almacenamiento en caché de servidores proxy basados ​​en el software Squid, que reducen el tráfico de medios decenas de veces.

En este artículo te contaré cómo configuramos y en qué parte de la red ubicamos los servidores para evitar problemas durante las transmisiones.

¿Por qué necesitamos poderes separados?

Las retransmisiones masivas de vídeo son siempre una prueba para la infraestructura de red. Una transmisión Full HD en un VDI genera un tráfico de 2,5 Mbit/s y cinco mil espectadores, ya 12,5 Gbit/s. La carga de los firewalls está creciendo, lo que puede provocar que otros servicios se degraden y que los usuarios experimenten retrasos en el vídeo y el audio.

Para este tipo de problema, los servidores proxy de almacenamiento en caché son una solución comprobada. Casi todas las principales plataformas de streaming lo utilizan, como Netflix o Twitch. Una alternativa es configurar la multidifusión (IP multicast), en la que el enrutador reenvía el tráfico a todos los usuarios conectados. Lo abandonamos porque es demasiado complejo y poco flexible de configurar, lo que, además, no funcionará para todos los usuarios.

Los servidores proxy tienen un modo de almacenamiento en caché: cuando se accede a ellos, toman el contenido de su caché, en lugar de solicitarlo cada vez desde el recurso web. Recuerdo la historia de los albores de Internet, cuando proveedores de regiones con canales de comunicación estrechos compraron e instalaron equipos para almacenar en caché el tráfico de Yandex. Google Cache Server funciona según un principio similar, pero dentro de su propia CDN.

Para las transmisiones de video utilizamos un proxy de código abierto. Calamarque utilizamos activamente en otros proyectos.

Configurar un proxy

La peculiaridad de las transmisiones es que los espectadores ven aproximadamente los mismos fragmentos de video durante 2 a 3 segundos. El proxy debe descargarlos, almacenarlos en caché, servirlos y luego eliminarlos. Al mismo tiempo, el servidor no necesita muchos recursos para almacenarlos.

Primero probamos el almacenamiento en caché del disco duro, pero hicimos algunas pruebas de carga y descubrimos que no funcionaba lo suficientemente bien. Como resultado, desactivamos la configuración de caché del disco y dejamos la siguiente configuración:

#Опции вытеснения — процент использования кэша, при котором он будет обновляться
cache_swap_low 85 
cache_swap_high 90

#Опция включения задержки: если у нас много запросов к одинаковому URL, который уже скачивается, то они ставятся в режим ожидания.
collapsed_forwarding on

#Объем кэша
cache_mem 5000 MB

#Максимальный размер файла, который можно кэшировать
maximum_object_size_in_memory 10 MB

Preste atención a la opción colapso_forwarding: generalmente está deshabilitada en servidores proxy a través de los cuales pasa una gran cantidad de contenido diferente. Con esta configuración, el porcentaje de acceso al caché será bajo y durante las transmisiones de video, el tráfico desde el proxy al recurso remoto puede cargar la red.

Como resultado, la configuración del servidor que nos convenía era de 8 CPU, 32 GB de RAM y 40 GB de espacio en disco para el sistema operativo. Comprobamos cuántas conexiones puede manejar un proxy: sin degradación de la red, llegamos a dos mil quinientas conexiones.

Colocar un proxy en una red corporativa

Nuestras transmisiones van desde el servidor del contratista desde Internet a la red interna de MTS, donde los empleados ya las están viendo:

Número promedio de usuarios por servidor

Número promedio de usuarios por servidor

MTS tiene grandes centros de datos regionales: dos en Moscú, dos en San Petersburgo, Nizhny Novgorod, Krasnodar, Ekaterimburgo, Novosibirsk y el Lejano Oriente. Colocamos de uno a siete servidores de caché en cada centro de datos, dependiendo de la cantidad de empleados en la región. El equilibrio se realiza mediante el mecanismo BGP ECMP.

Esquema de ubicación general: los servidores proxy de caché de la red interna se conectan a servidores en la DMZ a través de los cuales se proporciona acceso a Internet

Esquema de ubicación general: los servidores proxy de caché de la red interna se conectan a servidores en la DMZ a través de los cuales se proporciona acceso a Internet

Para interactuar con recursos externos, el tráfico se enruta a través de segmentos DMZ cerrados y pasa a través de varios firewalls. En la DMZ contamos con productos proxy que gestionan todo el acceso a Internet desde la red corporativa. Se podría configurar el almacenamiento en caché para ellos, pero decidimos crear un sistema separado para que no afecte el funcionamiento de los servicios principales. Colocar servidores proxy de caché en la red interna reduce la carga de los firewalls en la DMZ.

Los usuarios acceden al servidor en su región y no crean una carga de red en canales interregionales. Luego, el tráfico pasa a través del proxy tecnológico de la región hasta la red CDN del traductor en Internet. Si necesitamos escalar, simplemente agregamos servidores adicionales.

Cómo funciona esto

Usamos archivos PAC/Wpad para dirigir el tráfico a servidores proxy de almacenamiento en caché. Las políticas de grupo de dominio especifican su dirección de ubicación, configuración de acceso y reglas para usar estos archivos en las estaciones de trabajo. En los archivos PAC/Wpad, para dominios de transmisión de video dedicados, especificamos el uso de un proxy de almacenamiento en caché, DIRECT para el tráfico a sistemas internos y proxies de Internet de productos para recursos en Internet.

Por lo tanto, los servidores de caché reciben solicitudes de los usuarios de recursos de transmisión de video, descomprimen los tls y cambian el certificado del recurso por un certificado de CA confiable emitido especialmente. A través de servidores proxy del producto, los servidores de caché reenvían la solicitud en su nombre a la CDN del traductor. Las respuestas se almacenan en caché y se devuelven a los usuarios sin llamadas repetidas a la CDN.

Mis consejos para trabajar con proxies de streaming

El método que describí redujo la carga en la red decenas de veces. Hasta el 98% del tráfico se almacena en caché en todos los servidores proxy (en adelante, la plataforma de monitoreo promedia los datos):

Casi 1 Gb/s va desde cada servidor a los usuarios:

Al mismo tiempo, la transmisión desde el traductor CDN no tarda más de 14 Mb/s:

Tenemos la oportunidad de desarrollar aún más el sistema. Por ejemplo, traslade los servidores proxy a oficinas remotas a las que se llega a través de un canal de comunicación débil o costoso. U optimice la cantidad de servidores para reducir aún más la cantidad de tráfico que llega a ellos. Pero en general, en su forma actual, el sistema ya nos conviene: los usuarios ven las retransmisiones en buena calidad y la red funciona de forma estable.

Si se enfrenta a una tarea similar de almacenar en caché el tráfico de medios, considere:

  • para las transmisiones, es mejor deshabilitar el uso del disco para que el caché se almacene solo en la RAM; de esta manera evitará que los espectadores se congelen en el video y el sonido;

  • Según nuestras pruebas, un proxy puede soportar como máximo dos mil quinientas conexiones. Por lo tanto, al calcular sus sistemas, puede centrarse en mil quinientas conexiones por servidor;

  • si su transmisión proviene de una red externa, entonces es mejor colocar un proxy en el interior para no sobrecargar los firewalls en los límites de los segmentos internos;

  • Es imperativo utilizar un equilibrador, ya que sin él las solicitudes pueden ir a un servidor y este no podrá hacer frente a la carga.

Eso es todo para mí. Si tiene alguna pregunta o adición, escriba en los comentarios.

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *