viernes, 23 de noviembre de 2012

Medir la velocidad de conexión a Internet desde línea de comandos


Siempre que necesito medir la velocidad de conexión a Internet utilizo el site speedtest.net. Es una herramienta muy práctica y sencilla para saber las velocidades de subida y bajada del enlace desde donde nos estamos conectando.


Para poder utilizarla solo hace falta un navegador web. Y ahí aparece el problema si queremos hacer el test desde consola sin tener un browser disponible (en un servidor remoto por ej.).

Normalmente en estos casos para testear las velocidades de descarga lo más sencillo sería ponerse a descargar un archivo (con wget o curl) relataivamente grande, y ver las estadísticas o hacer un simple cálculo entre tamaño del archivo/tiempo requerido para la descarga.

También existe la herramienta lperf, para probar el ancho de banda entre dos equipos, que también podría servir.

Pero lo más interesante sería tener una herramienta tipo speedtest.net, que mida download y upload, y que sea sencilla de usar.

Buscando algo así me encontré con una herramienta que hace justamente eso: testspeed, un script python disponible en https://github.com/Janhouse/tespeed.

Fue desarrollada por un programados de nombre Janis Jansons de Letonia, y utiliza los servicios de speedtest.net para realizar la prueba de velocidades, pero todo sin salir de la querida consola.

Se puede descargar el script desde github:


$ wget https://github.com/Janhouse/tespeed/archive/master.zip
$ unzip master.zip

Antes de poder utilizarlo, hay que instalar el módulo lxml de python:
$ sudo apt-get install python-lxml

Y ahora si, ya lo podemos ejecutar:

$ cd tespeed-master/
$ ./tespeed.py 

Primero, al igual que la versión tradicional de speedtest, el script testeará la latencia contra servidores cercanos goegráficamente, y una vez seleccionado el mejor, entonces realizará los tests de download y upload.

$ ./tespeed.py
Getting ready. Use parameter -h or --help to see available features.
Loading speedtest configuration...
IP: 198.74.62.154; Lat: 39.489900; Lon: -74.477300; ISP: Linode
Loading server list...
Looking for closest and best server...
Testing latency...
11 ms latency for http://sto-plfi-01.sys.comcast.net/speedtest/ (Comcast, Plainfield, NJ, United States) [37.08 km]
7 ms latency for http://speedtest.monmouth.com/speedtest/ (Monmouth Telecom, Red Bank, NJ, United States) [52.38 km]
3 ms latency for http://speed.fortressitx.com/speedtest/ (Fortress ITX, Clifton, NJ, United States) [54.77 km]
9 ms latency for http://nms.interserver.net/speedtest/speedtest/ (Interserver, inc, Secaucus, NJ, United States) [60.15 km]
2571 ms latency for http://newyork-speedtest.atlanticmetro.net/speedtest/speedtest/ (Atlantic Metro, New York, NY, United States) [64.06 km]
Best server with average latency 3ms - Fortress ITX, Clifton, NJ, United States
Download size: 3.93 MiB; Downloaded in 0.04 s                                              
Download speed: 112.11 Mbit/s
Download size: 16.18 MiB; Downloaded in 0.10 s                                             
Download speed: 164.61 Mbit/s
Download size: 35.78 MiB; Downloaded in 0.20 s                                             
Download speed: 180.54 Mbit/s
Download size: 63.56 MiB; Downloaded in 0.37 s                                             
Download speed: 170.40 Mbit/s
Download size: 142.98 MiB; Downloaded in 0.74 s                                            
Download speed: 194.10 Mbit/s
Download size: 253.05 MiB; Downloaded in 1.34 s                                            
Download speed: 188.53 Mbit/s
Download size: 379.57 MiB; Downloaded in 2.09 s                                            
Download speed: 181.30 Mbit/s
Download size: 595.58 MiB; Downloaded in 3.06 s                                            
Download speed: 194.95 Mbit/s
Download size: 855.21 MiB; Downloaded in 4.40 s                                            
Download speed: 194.54 Mbit/s
Download size: 1164.58 MiB; Downloaded in 6.05 s                                           
Download speed: 192.43 Mbit/s
Upload size: 2.10 MiB; Uploaded in 0.51 s                                                  
Upload speed: 4.09 Mbit/s
Upload size: 2.10 MiB; Uploaded in 0.26 s                                                  
Upload speed: 8.10 Mbit/s
Upload size: 4.19 MiB; Uploaded in 0.56 s                                                  
Upload speed: 7.54 Mbit/s
Upload size: 4.19 MiB; Uploaded in 0.56 s                                                  
Upload speed: 7.53 Mbit/s
Upload size: 16.78 MiB; Uploaded in 1.12 s                                                 
Upload speed: 14.99 Mbit/s
Upload size: 16.78 MiB; Uploaded in 1.51 s                                                 
Upload speed: 11.09 Mbit/s
Upload size: 134.22 MiB; Uploaded in 7.22 s                                                
Upload speed: 18.58 Mbit/s

Un script muy práctico, que si bien aún se encuentra en versión alpha con algunos pequeños bugs, cumple muy bien su tarea.

No hay comentarios.:

Publicar un comentario