🛠 Benchmark Ethernet iperf3 : mesurer le piège 10/100 vs gigabit
Objetivos
Pasar de la teoría a la prueba: medir el rendimiento real del puerto Ethernet de tu PINE A64 con iperf3 y documentar la trampa histórica de Kickstarter — los compradores de la versión básica que descubrieron ~11 MB/s esperando gigabit. Aprenderás a (1) verificar la velocidad negociada, (2) medir el rendimiento a nivel de aplicación, (3) demostrar que el puerto es la EMAC interna del SoC, y (4) reconocer el problema de alimentación del PHY (rail DC1SW «vcc-phy») que hace inestable el enlace en los device trees mal corregidos.
Material
- 1 × PINE A64 o A64+ bajo Armbian (
sudo apt install iperf3 ethtool) - 1 × PC de escritorio en la misma LAN (servidor iperf3)
- Cable Ethernet Cat5e mínimo, switch gigabit (si no, es el switch el que limita)
- Consola serie o SSH (atención: el SSH va lento durante el benchmark de una tarjeta 10/100 — es normal)
Código completo
# Côté PC (serveur) :
iperf3 -s
# Côté Pine64 (client, 20 s) :
iperf3 -c 192.168.1.10 -t 20
# Interprétation :
# PINE A64 de base (RTL8201, RMII) : plafond ~94 Mbit/s (10/100)
# PINE A64+ (RTL8211, RGMII) : jusqu'à ~600+ Mbit/s (gigabit)
# Vitesse négociée et état du lien :
sudo ethtool eth0 | grep -E 'Speed|Link'
# Prouver que c'est l'EMAC interne (pas un NIC USB) :
ls -l /sys/class/net/eth0/device # -> .../1c30000.ethernet
# Lien instable ? Le noyau mainline impose un délai d'alimentation du PHY :
# regulator-enable-ramp-delay sur DC1SW/vcc-phy — commentaire du DTS :
# « Ethernet PHY needs 30ms to properly power up and some more to initialize »
dmesg | grep -iE 'eth|phy|link'
Verificación esperada
En una tarjeta básica, iperf3 se limita a unos 94 Mbit/s — la línea «sender» ronda los 11 MB/s: es la firma del PHY RTL8201 10/100, no un defecto. En una A64+, se superan ampliamente los 100 Mbit/s (se esperan 600+ Mbit/s en gigabit). El enlace sysfs 1c30000.ethernet confirma el controlador EMAC integrado: el rumor de un «gigabit vía USB2» en esta tarjeta no está confirmado por ningún esquema ni device tree — ambas variantes parten de la EMAC interna, solo cambia el PHY (RMII vs RGMII).
Errores frecuentes
- Acusar a la tarjeta de estar muerta porque se limita a 94 Mbit/s: verificar primero
compatibleyethtool Speed— la versión básica está documentada como 10/100. - Hacer el benchmark a través de un switch de 100 Mbit/s o un PLC mediocre: el eslabón débil rara vez es la tarjeta; probar en directo tarjeta↔PC si es posible.
- SSH que se congela durante iperf3 en la tarjeta básica: el tráfico de prueba satura el enlace 10/100 — trabajar en consola serie durante la medición.
- Enlace que no sube o cae intermitentemente: el rail de alimentación del PHY (DC1SW «vcc-phy») requiere un rampa de unos 100 ms; los DT sin la corrección
regulator-enable-ramp-delaydel mainline muestran enlaces up inestables. Usar una imagen actualizada. - Confundir Mbit/s y MB/s: 94 Mbit/s ≈ 11,3 MB/s — las cifras de iperf3 y de
free/ddno están en las mismas unidades. - Olvidar la RAM en las mediciones intensivas de CPU: el modelo de 512 MB satura mucho más rápido; sus distribuciones admitidas están limitadas a Arch/Debian.
Otros tutoriales para esta placa
- Premier boot d'Armbian sur la PINE A64 (microSD, console série, rootfs)
- PINE A64 ou PINE A64+ ? Le pièg du réseau gigabit dès le premier regard
- Faire clignoter une LED avec libgpiod (numérotation GPIO du A64 : PB0 = 32)
- Lire un capteur I²C (BME280) sur le bus i2c-1 du connecteur Pi-2
- Un serveur maison qui consomme 2,5 W : Docker léger sur la PINE A64
- Construire sa propre image Armbian pour la PINE A64 (armbian/build)
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash