Publi

Conocer la velocidad de descarga de nuestra conexión desde terminal

A la hora de hacer un test de velocidad, muchas veces recurrimos a páginas que ofrecen aplicaciones Flash para hacer el test de velocidad, muchas veces Flash nos puede resultar incómodo, otras veces, estamos en un ordenador tan antiguo que no tira bien de Flash.

Estos tests, suelen descargar un fichero relativamente grande, y dividen tamaño del archivo descargado por el tiempo empleado en su descarga, con lo que nos devuelven los Mb/s a lo que hemos descargado dicho archivo; suelen medir la velocidad de un conjunto muy complejo de elementos que están funcionando a la vez (por mencionar algunos de los más importantes):

  • El servidor que nos manda la información: Si el servidor está saturado, tal vez no nos mande la información al máximo de su velocidad
  • La conexión del servidor: Si la velocidad de subida del servidor es más pequeña que la velocidad de bajada del ordenador a analizar (por ejemplo si hacemos que nuestro ordenador envíe el test a casa de un amigo, el test no saldrá bien), si el proveedor de servicios ha penalizado la transferencia del servidor (a lo mejor por consumo excesivo de ancho de banda), o si el servidor tiene muchas peticiones simultáneas, tiene que repartir su ancho de banda entre todos.
  • El camino entre nosotros: La transferencia de la información no se hace por un camino directo, sino que va saltando por muchos nodos. Si alguno de estos no tienen suficiente velocidad de salida, está saturado o tiene cualquier problema, puede estar metiendo la pata. Por eso, cuanto más cerca esté el servidor que nos manda el archivo, más rápido irá (en teoría)
  • Nuestra conexión: En realidad es lo que queremos probar, cuánto de rápido podemos recibir nosotros. Suponemos que los tres puntos anteriores sirven ficheros a velocidad infinita, que no es así, pero bueno.
  • La velocidad de nuestro ordenador: Normalmente no está sólo haciendo el test, sino que lo tendremos cargando múltiples aplicaciones, aunque los servicios de red suelen estar muy optimizados e ir muy rápido, si tenemos poca memoria libre (y estamos ejecutando cosas tirando de swap), o si tenemos un proceso que nos está comiendo toda la CPU (como puede ser Flash), la recepción no se hace tan rápida

Los 3 primeros escapan a nuestro control, lo más que podemos hacer es elegir la ubicación desde la que queremos descargar el fichero (podemos hacer el test varias veces desde diferentes ubicaciones, por ejemplo), lo que sí podemos controlar es nuestra conexión (bueno, contratando más velocidad a nuestro operador, si a éste le da por servirnos la velocidad que vende) y nuestro ordenador (podemos tenerlo con los mínimos procesos en ejecución, pero aún así Flash, en muchas ocasiones nos estorba).

Por otro lado, el problema puede que no sea Flash, sino que queramos automatizar el test.

Por eso, vamos a crear un test desde terminal, en principio sólo de bajada. Para ello, vamos a descargar con cURL:

1
LANG=C; echo "scale=2; `curl  --progress-bar -w "%{speed_download}" http://host1.cablexnet.net/host2/speedtest/random750x750.jpg -o /tmp/test` / 131072" | bc

Tal vez el fichero sea muy pequeño, pero dejo un cut&paste rápido

Esta línea lo que hace es cambiar la localización del sistema (lo hacemos porque por ejemplo, en español, el separador decimal es una coma, mientras que en inglés (lo que admite el comando bc), es un punto; el resultado de cURL queremos que nos lo devuelva con un punto; luego descarga el fichero con cURL (y poner una barra de progreso), el fichero lo guardaremos en /tmp/test por lo que en /tmp/ debemos tener espacio libre suficiente, al final, nos devolverá la velocidad en bytes /segundo, aunque a nosotros nos interesan los megabits por segundo, por eso, con bc, dividimos por 131072 (este número no es más que 1024×1024/8 (1Mb / bits por byte).

Podemos crear un método más general:

1
2
3
4
LANG=C
FICHERO="..." # Lo vemos más adelante
VELOCIDAD=$(echo "scale=2; `curl  --progress-bar -w "%{speed_download}" $FICHERO -o /tmp/test` / 131072" | bc)
echo "Mi velocidad es de $VELOCIDAD Mbits/s"

Ahora muestro una serie de servidores desde los que podemos descargar un fichero para este test de velocidad:

Localización URL Tamaño ¿Qué es?
Seattle http://speedtest1.sea1.speakeasy.net/speedtest/random500x500.jpg 494Kb Imagen aleatoria 500×500
Seattle http://speedtest1.sea1.speakeasy.net/speedtest/random1000x1000.jpg 1.9Mb Imagen aleatoria 1000×1000
Seattle http://speedtest1.sea1.speakeasy.net/speedtest/random2000x2000.jpg 7.5Mb Imagen aleatoria 2000×2000
Seattle http://speedtest1.sea1.speakeasy.net/speedtest/random3000x3000.jpg 17Mb Imagen aleatoria 3000×3000
Seattle http://speedtest1.sea1.speakeasy.net/speedtest/random4000x4000.jpg 30Mb Imagen aleatoria 4000×4000
San Francisco http://speedtest1.sfo1.speakeasy.net/speedtest/random500x500.jpg 494Kb Imagen aleatoria 500×500
San Francisco http://speedtest1.sfo1.speakeasy.net/speedtest/random1000x1000.jpg 1.9Mb Imagen aleatoria 1000×1000
San Francisco http://speedtest1.sfo1.speakeasy.net/speedtest/random2000x2000.jpg 7.5Mb Imagen aleatoria 2000×2000
San Francisco http://speedtest1.sfo1.speakeasy.net/speedtest/random3000x3000.jpg 17Mb Imagen aleatoria 3000×3000
San Francisco http://speedtest1.sfo1.speakeasy.net/speedtest/random4000x4000.jpg 30Mb Imagen aleatoria 4000×4000
Los Ángeles http://speedtest1.lax1.speakeasy.net/speedtest/random500x500.jpg 494Kb Imagen aleatoria 500×500
Los Ángeles http://speedtest1.lax1.speakeasy.net/speedtest/random1000x1000.jpg 1.9Mb Imagen aleatoria 1000×1000
Los Ángeles http://speedtest1.lax1.speakeasy.net/speedtest/random2000x2000.jpg 7.5Mb Imagen aleatoria 2000×2000
Los Ángeles http://speedtest1.lax1.speakeasy.net/speedtest/random3000x3000.jpg 17Mb Imagen aleatoria 3000×3000
Los Ángeles http://speedtest1.lax1.speakeasy.net/speedtest/random4000x4000.jpg 30Mb Imagen aleatoria 4000×4000
Dallas http://speedtest1.dfw1.speakeasy.net/speedtest/random500x500.jpg 494Kb Imagen aleatoria 500×500
Dallas http://speedtest1.dfw1.speakeasy.net/speedtest/random1000x1000.jpg 1.9Mb Imagen aleatoria 1000×1000
Dallas http://speedtest1.dfw1.speakeasy.net/speedtest/random2000x2000.jpg 7.5Mb Imagen aleatoria 2000×2000
Dallas http://speedtest1.dfw1.speakeasy.net/speedtest/random3000x3000.jpg 17Mb Imagen aleatoria 3000×3000
Dallas http://speedtest1.dfw1.speakeasy.net/speedtest/random4000x4000.jpg 30Mb Imagen aleatoria 4000×4000
Chicago http://speedtest1.chi1.speakeasy.net/speedtest/random500x500.jpg 494Kb Imagen aleatoria 500×500
Chicago http://speedtest1.chi1.speakeasy.net/speedtest/random1000x1000.jpg 1.9Mb Imagen aleatoria 1000×1000
Chicago http://speedtest1.chi1.speakeasy.net/speedtest/random2000x2000.jpg 7.5Mb Imagen aleatoria 2000×2000
Chicago http://speedtest1.chi1.speakeasy.net/speedtest/random3000x3000.jpg 17Mb Imagen aleatoria 3000×3000
Chicago http://speedtest1.chi1.speakeasy.net/speedtest/random4000x4000.jpg 30Mb Imagen aleatoria 4000×4000
Atlanta http://speedtest1.atl1.speakeasy.net/speedtest/random500x500.jpg 494Kb Imagen aleatoria 500×500
Atlanta http://speedtest1.atl1.speakeasy.net/speedtest/random1000x1000.jpg 1.9Mb Imagen aleatoria 1000×1000
Atlanta http://speedtest1.atl1.speakeasy.net/speedtest/random2000x2000.jpg 7.5Mb Imagen aleatoria 2000×2000
Atlanta http://speedtest1.atl1.speakeasy.net/speedtest/random3000x3000.jpg 17Mb Imagen aleatoria 3000×3000
Atlanta http://speedtest1.atl1.speakeasy.net/speedtest/random4000x4000.jpg 30Mb Imagen aleatoria 4000×4000
Nueva York http://speedtest1.nyc1.speakeasy.net/speedtest/random500x500.jpg 494Kb Imagen aleatoria 500×500
Nueva York http://speedtest1.nyc1.speakeasy.net/speedtest/random1000x1000.jpg 1.9Mb Imagen aleatoria 1000×1000
Nueva York http://speedtest1.nyc1.speakeasy.net/speedtest/random2000x2000.jpg 7.5Mb Imagen aleatoria 2000×2000
Nueva York http://speedtest1.nyc1.speakeasy.net/speedtest/random3000x3000.jpg 17Mb Imagen aleatoria 3000×3000
Nueva York http://speedtest1.nyc1.speakeasy.net/speedtest/random4000x4000.jpg 30Mb Imagen aleatoria 4000×4000
Washingtong http://speedtest1.wdc1.speakeasy.net/speedtest/random500x500.jpg 494Kb Imagen aleatoria 500×500
Washingtong http://speedtest1.wdc1.speakeasy.net/speedtest/random1000x1000.jpg 1.9Mb Imagen aleatoria 1000×1000
Washingtong http://speedtest1.wdc1.speakeasy.net/speedtest/random2000x2000.jpg 7.5Mb Imagen aleatoria 2000×2000
Washingtong http://speedtest1.wdc1.speakeasy.net/speedtest/random3000x3000.jpg 17Mb Imagen aleatoria 3000×3000
Washingtong http://speedtest1.wdc1.speakeasy.net/speedtest/random4000x4000.jpg 30Mb Imagen aleatoria 4000×4000
Madrid http://www.testdevelocidad.es/speedtest/random500x500.jpg 494Kb Imagen aleatoria 500×500
Madrid http://www.testdevelocidad.es/speedtest/random1000x1000.jpg 1.9Mb Imagen aleatoria 1000×1000
Madrid http://www.testdevelocidad.es/speedtest/random2000x2000.jpg 7.5Mb Imagen aleatoria 2000×2000
Madrid http://www.testdevelocidad.es/speedtest/random3000x3000.jpg 17Mb Imagen aleatoria 3000×3000
Madrid http://www.testdevelocidad.es/speedtest/random4000x4000.jpg 30Mb Imagen aleatoria 4000×4000
Madrid http://testvsvll2.ono.es/speedtest/random500x500.jpg 494Kb Imagen aleatoria 500×500
Madrid http://testvsvll2.ono.es/speedtest/random1000x1000.jpg 1.9Mb Imagen aleatoria 1000×1000
Madrid http://testvsvll2.ono.es/speedtest/random2000x2000.jpg 7.5Mb Imagen aleatoria 2000×2000
Madrid http://testvsvll2.ono.es/speedtest/random3000x3000.jpg 17Mb Imagen aleatoria 3000×3000
Madrid http://testvsvll2.ono.es/speedtest/random4000x4000.jpg 30Mb Imagen aleatoria 4000×4000
Badajoz http://host1.cablexnet.net/host2/speedtest/random500x500.jpg 494Kb Imagen aleatoria 500×500
Badajoz http://host1.cablexnet.net/host2/speedtest/random1000x1000.jpg 1.9Mb Imagen aleatoria 1000×1000
Badajoz http://host1.cablexnet.net/host2/speedtest/random2000x2000.jpg 7.5Mb Imagen aleatoria 2000×2000
Badajoz http://host1.cablexnet.net/host2/speedtest/random3000x3000.jpg 17Mb Imagen aleatoria 3000×3000
Badajoz http://host1.cablexnet.net/host2/speedtest/random4000x4000.jpg 30Mb Imagen aleatoria 4000×4000
Puerto de Santa María http://speedtest.cyberneticos.net/speedtest/random500x500.jpg 494Kb Imagen aleatoria 500×500
Puerto de Santa María http://speedtest.cyberneticos.net/speedtest/random1000x1000.jpg 1.9Mb Imagen aleatoria 1000×1000
Puerto de Santa María http://speedtest.cyberneticos.net/speedtest/random2000x2000.jpg 7.5Mb Imagen aleatoria 2000×2000
Puerto de Santa María http://speedtest.cyberneticos.net/speedtest/random3000x3000.jpg 17Mb Imagen aleatoria 3000×3000
Puerto de Santa María http://speedtest.cyberneticos.net/speedtest/random4000x4000.jpg 30Mb Imagen aleatoria 4000×4000

Podríamos introducirlas todas en un array y probarlas.

Ahora bien si queremos hacer un test de subida, podemos hacer lo siguiente:

1
LANG=C; echo "scale=2; `curl  --progress-bar -w "%{speed_upload}" --data-binary @/tmp/test http://speedtest.cyberneticos.net/speedtest/upload.php` / 131072" | bc

Podemos cambiar la URL de subida por la que queramos, como si queremos poner http://facebook.com o http://microsoft.com (algunos servidores no nos dejan hacer peticiones grandes y la cancelan, pero suele funcionar)

También podría interesarte...

There are 4 comments left Ir a comentario

  1. Pingback: Bitacoras.com /

  2. Pingback: Problema/consulta – Ayuda, soy nuevo en Linux… /

  3. Testeador /
    Usando Google Chrome Google Chrome 50.0.2661.102 en Mac OS X Mac OS X 10.10.5

    Genial, funciona!!!

    1. Gaspar Fernández / Post Author
      Usando Mozilla Firefox Mozilla Firefox 46.0 en Ubuntu Linux Ubuntu Linux

      Gracias !! Yo pensaba que en unos años no funcionaría y habría que cambiar algo 🙂

Leave a Reply