raspberry pi 3 cuello botella

El cuello de botella de la Raspberry Pi

Basado ampliamente en otro original de Uroboros

Todas las Raspberry Pi en general tienen a día de hoy mismo problema a la hora de copiar ficheros al PC de sobremesa: la lentitud del proceso. La pregunta por qué las RPi son más lentas que otras placas dotadas de un puerto Ethernet de la misma velocidad (10/100 MB). Sin entrar a compararlas con las ODROID-C1 o la Banana Pro, que incorporan un puerto Ethernet Gigabit (10/100/1000 MB). La diferencia en estos casos, lógicamente, es enorme.

La respuesta a esa pregunta es la siguiente: el puerto Ethernet de la RPi no sólo es que va a 100 MB frente al Gigabit de la competencia, es que ni siquiera es un auténtico puerto Ethernet, sino que usa el bus USB de la placa (compartiendo su ancho de banda) mediante un sistema de conversión. Se trata de un SMSC LAN9514.

raspberry-pi-SMSC LAN9514

Cuando se lanzó la RPi podía tener sentido por la búsqueda de componentes que fueran lo más barato posible; pero ahora, con el paso del tiempo, padecemos sus consecuencias.

Así que los 4 puertos USB + el puerto Ethernet pasan todos por un mismo chip, un HUB USB interno y luego van al procesador y a la RAM

El lanzamiento de la Raspberry Pi 2 y lo mismo sigue pasando con la Raspberry Pi 3 demuestra que en la Fundación Raspberry Pi no están dispuestos a corregir este problema todavía. ¿Cuándo será el momento oportuno, en la próxima revisión o en la siguiente?

La decisión de continuar con este puerto supone, como decíamos, un auténtico cuello de botella para la placa, de modo que las mejoras que incorporó la Raspberry Pi 2 o la Raspberry Pi 3 no palían en absoluto el problema. El añadir una CPU quad core y aumentar la RAM hasta 1 GB lo que hacen es proporcionar mayor velocidad de proceso y mayor rendimiento a la hora de ejecutar aplicaciones, pero la transmisión de esos datos fuera de la placa ha de seguir haciéndose a través del mismo falso y lento puerto Ethernet, con lo que la conexión de la placa al exterior, ya sea por medio de SSH o usándolo como NAS casero, seguirá adoleciendo de la misma lentitud que tenían los modelos anteriores. Os marco en rojo en el esquema del controlador SMSC LAN9514 dónde estaría el famoso cuello de botella de las Raspberry.

SMSC_LAN9514-esquema

Pruebas con iperf con router TP-Link a 100Mbits

Hay una aplicación Linux que nos permitirá demostrar esto, se trata de iperf. Necesitamos dos ordenadores con Linux a cada lado de la conexión a probar, unos harán de servidor y otro de cliente:

Y estos son los resultados:

UG802 Beelink X2 Raspberry Pi 3
Banana PRO 43.4 Mbit/s 95.2 Mbit/s 95.2 Mbit/s
Lenovo Yoga 11.5 Mbit/s 31.2 Mbit/s 30.9 Mbit/s

Como veis, tampoco es que sea una locura, pero al atacar un un PC más potente como cliente empieza a perder velocidad, creo que la clave es que al tener una red de 100Mbits con un router malillo, es ahí donde tengo el cuello de botella, es cuestión de probar en cada caso y en cada casa.

Más información en:

iperf-cuello-01

iperf-cuello-02

  • Pues llevo tiempo obsesionado en aprovechar 3 discos de 2,5″ (almenos que funcionasen 2) para montar un NAS, siempre que lo pruebo, desisto, por la de problemas que tengo en la alimentación de estos.

    La verdad es que la intencion es ver vídeos, no se si me merece la pena seguir intentando continuar con Raspberry o si por contra, me recomendais alguna otra de esas Odroid o Banana ?

    EDIT: Basicamente con que tengan una Debian o similar, para poder configurar Samba y aprender de upnp y dlna y sporte para discos 2,5″ me vale :D

    • Por probar algo barato y potente podrías hacerlo con las Orange Pi. La Orange Pi Lite tiene dos puertos USB pero conexión por Wi-Fi y la Orange Pi One tiene red Ethernet pero solo 1 puerto USB. Pero ambas rondan los 12€ con gastos de envío y todo. Luego con 3 puertos USB y red Ethernet tienes las otras Orange Pi, la PC, la plus y la PC 2. Algunas de estas son mejores que otras no sabría decirte cual. En cualquier caso entra en la web de armbian y mira las que tienen soportadas y los comentarios se su foro.

      • Pues muchas gracias, por precio creo que me decanto por la plus, que tiene sus 3 USB que me irian perfecto.

        Por lo que necesito, no creo que tenga mucho problema :D

        • De nada. Ya contarás que tal.

  • crico_aven

    Interesante artículo.

    Quizás esto me aclare un poco porqué mi raspberry (1) sólo es capaz de sacar ~50Mb cuando le paso un test con speedtest. La tengo conectada al router (gigabit) por ethernet, y me resultaba extraño que solo llegue a 50Mb cuando desde otros dispositivos alcanzo 100Mb sin problemas.

    • Es que el cuello de botella es enorme, lo pasan todo por ese chip y dependiendo de la configuracion de cosas en USB pues tumban el ancho de banda del Ethernet. Las pruebas al final del post están hechas con una Raspberry-Pi sin nada conectado por USB, ni ratón, ni teclado, ni Wi-Fi, ni ningún disco o memoria y aún así va algo peor que las otras opciones.

  • Pingback: NAS caseros : Raspberry Pi 2 vs otras opciones | Raspberry para torpes()

  • Pingback: Sobre la Raspberry Pi 3 | Raspberry para torpes()