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.
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.
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:
- Servidores:
- UG802 Picuntu por Wi-Fi
- Beelink X2 con Ethernet 10/100 Mbits
- Raspberry Pi 3 con Ethernet 10/100 Mbits
- Clientes:
- Banana PRO con con Ethernet Gigabit 10/100/1000 Mbits pero capada al pasarla por el router a 100 Mbits.
- Portátil Lenovo Yoga por Wi-Fi
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: