Ancho de banda en servidores dedicados y VPS

Todos los que trabajáis con servidores dedicados, servidores VPS, clouds, hostings y otro tipo de servicios relacionados, estáis familiarizados con expresiones como: ancho de banda, tráfico, etc.

En esta entrada vamos a profundizar un poco en el concepto de ancho de banda y sus modos de aplicación en cualquier tipo de servidor ya sea un dedicado, VPS o nodo de virtualización.

Todos los proveedores de servicios de Internet suelen publicar los valores de ancho de banda de sus servidores en sus características. Por ejemplo 100Mbps, 200Mbps, 1000Mbps, etc. Pero la gran pregunta que se plantea con los anchos de banda es: ¿vamos a poder hacer uso de este ancho de banda en todo momento?

La respuesta a la pregunta es relativa, puesto que el ancho de banda es una medida de capacidad de transmisión. Casi con total certeza el proveedor del servidor entrega el ancho de banda que dice en sus especificaciones, pero rara vez podréis ver en vuestras gráficas que hagáis uso de él.

Y... ¿cuál es el motivo?

Pueden existir decenas, incluso cientos, de motivos por los cuales nuestros servidores no usan el total del ancho de banda disponible, pero empecemos por los más básicos.

En primer lugar, como hemos dicho anteriormente, el ancho de banda es una medida de capacidad de transmisión. Por ello, y como sucede en todas las comunicaciones, intervienen dos partes: el emisor y el receptor. Aunque nuestro servidor tenga 100Mbps o 1000Mbps, si el receptor tiene tan solo 1Mbps, la transmisión entre ambos puntos no superará nunca 1Mbps ya que uno de los puntos no podrá recibir ni enviar a más de 1Mbps.

También puede que estemos realizando descargas desde otros puntos con suficiente ancho de banda como para llegar al 100% de uso de este, pero los sitios con grandes anchos de banda tienen sistemas que lo limitan por sesiones. Es decir si disponemos, por ejemplo, de 200Mbps y conectamos con Microsoft, Rediris, etc, para descargarnos una imagen veremos que el ancho consumido puede ser de 10, 20 ó 50Mbps. ¿Cuál es el motivo? Sencillo: para repartir la carga, y evitar que una sola descarga influya negativamente en las demás, se limitan las descargas a XXMbps sin que este valor pueda sobrepasarse. De este modo los administradores de los sitios de descargas aseguran que nadie pueda copar el ancho de banda total.

Existen otros posibles casos. Imaginemos el siguiente escenario: la oficina de una empresa tiene 50Mbps y el servidor que está en el centro de datos también tiene 50Mbps. Nos conectamos a éste y decidimos hacer una descarga de un fichero de 3GB por FTP o SCP (no importa el protocolo) y vemos que la descarga se hace a 10Mbps. ¿Cuál es el motivo? Como todos sabemos, en una oficina existen compañeros que a su vez navegan por Internet, utilizan el correo electrónico, se ejecutan procesos automáticos de backup en la nube, hay móviles y multitud de equipamiento conectado a Internet, etc. La salida a Internet del puesto de trabajo de una oficina suele ser común para todos los PCs que la componen por lo que, pese a que nuestro PC no esté realizando uso de Internet, puede que el resto de PCs sí lo estén haciendo y ocupando 40Mbps de los 50Mbps totales de la conexión de la oficina, dejando sólo 10Mbps libres que son los consumidos por la descarga. De este modo el servidor no enviará más de 10Mbps pese a que tenga 50Mbps disponibles ya que los otros 40Mbps están siendo usados por otros PCs.

El caso expuesto anteriormente también puede ocurrir en un servidor. Es decir, si el servidor está usando 20Mbps, tan solo quedarán 30Mbps disponibles para descargas, pero en este caso experimentaremos un descenso de la velocidad en la entrega de sitios web, correos, etc, ya que se está haciendo uso del 100% del ancho de banda.

Otra posible pregunta es: ¿si mi servidor, mi conexión y mi PC están perfectamente, por qué cuando abro una página web del servidor veo que en la gráfica de ancho de banda esta consulta no supera el 1Mbps si yo tengo mucho más?

Normalmente los sitios webs están compuestos por decenas o cientos de imágenes "troceadas", así como multitud de ficheros, como css o conexiones externas que han de realizar cada vez que nuestro PC accede al sitio web. Por ello, si la página que queremos consultar pesa 10Mbits, por ejemplo, y nuestra conexión a Internet es de 10Mbps, la lógica nos diría que podríamos descargar la página en 1 segundo, pero en la práctica nos damos cuenta que en vez de 1 segundo tarda 2 ó 3 segundos en estar totalmente descargada.

¿A qué es debido esto? ¿no tengo en el servidor el ancho de banda que dicen que tengo? Probablemente el ancho de banda sí que sea el que el proveedor indica pero cuando descargamos una web, como hemos explicado anteriormente, ésta se encuentra dividida en decenas o cientos de partes. Esto obliga al PC que realiza la consulta a la web a comenzar una descarga de 1Kb (por ejemplo una imagen), luego otra de 50Kb y así hasta completar toda la descarga de la página. Esta situación obliga a establecer la conexión para descargar un fichero y luego cerrarla, y estas acciones se realizan con todos los ficheros que sean necesarios para descargar el sitio completo. Abrir una sesión de comunicación y cerrarla consume tiempo, poco, pero consume tiempo. Esto, multiplicado por decenas, o cientos, de peticiones ralentizan la descarga total ya que no dejan tiempo posible para que una sesión esté abierta y se logren los 10Mbps de velocidad.

Otro posible motivo por el que veamos que el ancho de banda no es usado en su totalidad, puede ser que el servidor no sea capaz de entregar la información necesaria con la velocidad de nuestro ancho de banda.

Pongamos este ejemplo: tenemos un servidor de entrega de ficheros FTP y nuestro PC tiene una conexión a Internet de 100Mbps, al igual que el servidor, pero cuando descargamos un fichero la velocidad no llega a los 50Mbps. Hay que tener en cuenta que los ficheros son leídos de un disco duro y procesados por el servidor para que, posteriormente, se envíen por Internet al cliente. Si el servidor se encuentra realizando tareas de mantenimiento, scripts, backups, etc, puede que se esté ocupando el ancho de banda del disco duro y, por tanto, el disco no tenga la suficiente capacidad para hacer entrega de los datos a la velocidad que permite el ancho de banda. Esto puede dar la sensación de que en ocasiones las descargas van a 50Mbps, otras a 100Mbps y otras a 70Mbps. ¿Esto quiere decir que el ancho de banda no es el indicado? No, en absoluto. Este escenario indica que el servidor no tiene capacidad en ese momento de entregar la cantidad de datos que requiere, ya que el disco duro está ocupado con otras tareas.

Los más puristas que contratan un servicio con 500Mbps, por ejemplo, y exigen ver que su PC descarga desde su servidor a 500Mbps (suponiendo que la conexión desde el PC a Internet sea de 500Mbps) podrán observar que nunca llegarán a este valor y, una vez más, se podrá pensar que el servidor no tiene los Mbps prometidos, lo cual no es así. En una conexión de Internet existen protocolos que se encargan de manejar los paquetes que viajan por ella. Estos protocolos son una suite de varios protocolos llamada TCP/IP. Ellos se encargan de enviar los paquetes y, posteriormente, volver a formarlos en ficheros legibles para los ordenadores. Estos ficheros se envían y se componen mediante CRC (códigos de redundancia cíclica) entre otros. Por ejemplo, un paquete enviado (el cual es parte de un fichero) contiene una cabecera de 5Kb seguido del contenido de 50Kb y una cola de 5Kb. La cabecera y la cola tienen información de dónde se ha de situar este paquete una vez llegue a su destino y, junto con el resto de paquetes, van para formar un fichero legible. También existen protocolos que interceptan paquetes que llegan antes que otros y los dejan a la espera de disponer el paquete siguiente de la secuencia. A todos nos ha pasado que, realizando una descarga, el fichero al final está corrupto y es ilegible, pero a la segunda descarga lo podemos abrir sin problemas. Esto es debido a un error en el protocolo de conexión.

Como podéis ver en el ejemplo anterior cada 50Kb de datos que compone un paquete existen 10Kb de datos de control. Por eso, una transferencia con una línea de 500Mbps nunca podrá transferir 500Mbps de contenido de ficheros y es totalmente normal que veamos que la velocidad en ficheros no sea del 100%, ya que también se envían multitud de paquetes y sesiones de control de los protocolos que hacen posible la comunicación por Internet.

Con todos los anteriores ejemplos podemos deducir que aunque nuestro servidor tenga 100.000Mbps probablemente no seamos capaces de hacer uso de ellos por algunas de las razones descritas anteriormente: webs, servidor ocupado, limitaciones en las descargas de otros servidores, protocolos y muchos más motivos.

Esperamos que esta entrada os ayude a conocer más el término de ancho de banda y pueda dar respuestas a algunas de vuestras preguntas.

 

No hay comentarios

Agregar comentario