Yo uso iperf
. Es un arreglo de servidor cliente en el que lo ejecuta en modo servidor en un extremo y se conecta a él desde otra computadora en el otro lado de la red.
Una de las dos máquinas funciona:
sudo apt-get install iperf
Iniciaremos un iperf
servidor en una de las máquinas:
iperf -s
Y luego, en la otra computadora, diga iperf
que se conecte como cliente:
iperf -c <address of other computer>
En la máquina del cliente, verá algo como esto:
oli@bert:~$ iperf -c tim
------------------------------------------------------------
Client connecting to tim, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.0.4 port 37248 connected with 192.168.0.5 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.04 GBytes 893 Mbits/sec
Por supuesto, si está ejecutando un firewall en la máquina del servidor, deberá permitir conexiones en el puerto 5001 o cambiar el puerto con el -p
indicador.
Puede hacer casi lo mismo con el viejo nc
(netcat) si está inclinado de esa manera. En la máquina del servidor:
nc -vvlnp 12345 >/dev/null
Y el cliente puede canalizar un gigabyte de ceros a través dd
del nc
túnel.
dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345
Como demod:
$ dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345
Connection to 10.10.0.2 12345 port [tcp/*] succeeded!
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 9.11995 s, 118 MB/s
El tiempo allí viene dado, dd
pero debe ser lo suficientemente preciso, ya que solo puede salir tan rápido como lo tomará la tubería. Si no está satisfecho con eso, puede terminar todo en una time
llamada.
Recuerde que el resultado está en las mega bytes por lo que se multiplica por 8 para obtener un mega bits de velocidad -por segundos. La demostración anterior se ejecuta a 944mbps.
Igual que la recomendación de Oli para iperf. Solo quiero agregar varios puntos:
-t <seconds>
cambia la duración de la prueba. cambia el número de conexiones simultáneas. Por ejemplo, prueba 10 conexiones juntas durante 30 segundos y proporciona resultados agregados junto con 10 velocidades de conexión separadas.-P <n>
iperf -c [target IP] -P 10 -t 30
wget
, hágalo ejecutablechmod
y puede ejecutar directamente el binario. Funciona perfectamenteDescubrí que, usando la configuración predeterminada, la velocidad de conexión única fluctúa bastante. Sin embargo, con más de 3 conexiones paralelas, los resultados son más consistentes en mi conmutador de gigabytes. (consistentemente @ 910-920Mbps)
fuente
Con este script , puede probar fácilmente la velocidad de conexión entre su máquina y algún host remoto. Ejemplo de uso:
user@remote_host
es su host de destino (debe tener acceso ssh a este host)80000
es el tamaño aproximado del archivo de prueba (en kbs), que se recibirá en el host remoto. No es un argumento obligatorio.fuente
/dev/random
(se puede bloquear) ourandom
(los comentarios de enlace sugieren que) también pueden ser muy lentos, en su lugar use una dm-crypt (consulte la pregunta frecuente 2.19 de cryptsetup ¿Cómo puedo borrar un dispositivo con crypto- ¿Aleatoriedad de grado? ) tal vez con un archivo en ram.Si desea probar su LAN Ethernet en un nivel inferior, puede usar Etherate, que es una herramienta gratuita de prueba de Linux CLI Ethernet:
https://github.com/jwbensley/Etherate
Lanzándolo en la mezcla ya que herramientas como iPerf (¡que son muy buenas!) Operan sobre IP y TCP o UDP. Etherate prueba directamente sobre Ethernet / OSI capa 2.
fuente
El siguiente comando no requiere paquetes adicionales, sino acceso SSH:
Salida de ejemplo:
El comando imprime un archivo ficticio de 3 GB (1000 ^ 3 bytes) lleno de ceros en stdout en el servidor remoto, que se imprime (transfiere) a través de SSH a stdout del servidor local y luego se canaliza localmente
/dev/null
(es decir, se ignora). Incluso puede ver el progreso de la prueba mientras la ejecuta.Ciertamente no es tan preciso como otras herramientas, pero mi caso de uso fue depurar un proceso de copia de seguridad donde quería probar si la velocidad de la red era el problema sin instalar paquetes adicionales.
fuente
También hay algunas otras buenas herramientas de línea de comandos para el benchmarking de ancho de banda entre dos hosts:
nuttcp
nepim
goben
fuente
Como señalé en mi comentario en la mejor respuesta, esa solución no es lo suficientemente buena porque el cliente / servidor no está optimizado para ... exprimir cada bit de velocidad
mi solución:
haga un ramdisk en ambos lados (por lo tanto, no está limitado por la velocidad de almacenamiento y sugiero que los haya hecho con ramfs no tmpfs, para que no se intercambien ... solo tenga cuidado de no dejar al menos 512M de memoria libre para el sistema, esto es NECESARIO si tiene giga ethernet, a esa velocidad, incluso los SSD pueden ralentizar las cosas) instale apache en el servidor, luego cree un enlace a ramdisk, cree algunos archivos grandes en ramdisk (100M-1G, puede crearlos con dd desde / dev / random o copie si tiene algo a mano) luego vaya al lado del cliente y descárguelos (también en el disco de ese lado) con un programa de descarga avanzado, utilicé
lftp
bueno, la diferencia fue importante, de 75mbps reportados por iperf y netcat de 9.5M / s
a 11.18M / s con mi solución:
fuente
Es fácil conectar su computadora a la primera caja, conecte la otra caja a la primera caja. Luego, desde su computadora, haga ping al primer cuadro, guarde el resultado, haga ping al otro cuadro y reste.
fuente