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ónURLTamaño¿Qué es?
Seattlehttp://speedtest1.sea1.speakeasy.net/speedtest/random500x500.jpg494KbImagen aleatoria 500×500
Seattlehttp://speedtest1.sea1.speakeasy.net/speedtest/random1000x1000.jpg1.9MbImagen aleatoria 1000×1000
Seattlehttp://speedtest1.sea1.speakeasy.net/speedtest/random2000x2000.jpg7.5MbImagen aleatoria 2000×2000
Seattlehttp://speedtest1.sea1.speakeasy.net/speedtest/random3000x3000.jpg17MbImagen aleatoria 3000×3000
Seattlehttp://speedtest1.sea1.speakeasy.net/speedtest/random4000x4000.jpg30MbImagen aleatoria 4000×4000
San Franciscohttp://speedtest1.sfo1.speakeasy.net/speedtest/random500x500.jpg494KbImagen aleatoria 500×500
San Franciscohttp://speedtest1.sfo1.speakeasy.net/speedtest/random1000x1000.jpg1.9MbImagen aleatoria 1000×1000
San Franciscohttp://speedtest1.sfo1.speakeasy.net/speedtest/random2000x2000.jpg7.5MbImagen aleatoria 2000×2000
San Franciscohttp://speedtest1.sfo1.speakeasy.net/speedtest/random3000x3000.jpg17MbImagen aleatoria 3000×3000
San Franciscohttp://speedtest1.sfo1.speakeasy.net/speedtest/random4000x4000.jpg30MbImagen aleatoria 4000×4000
Los Ángeleshttp://speedtest1.lax1.speakeasy.net/speedtest/random500x500.jpg494KbImagen aleatoria 500×500
Los Ángeleshttp://speedtest1.lax1.speakeasy.net/speedtest/random1000x1000.jpg1.9MbImagen aleatoria 1000×1000
Los Ángeleshttp://speedtest1.lax1.speakeasy.net/speedtest/random2000x2000.jpg7.5MbImagen aleatoria 2000×2000
Los Ángeleshttp://speedtest1.lax1.speakeasy.net/speedtest/random3000x3000.jpg17MbImagen aleatoria 3000×3000
Los Ángeleshttp://speedtest1.lax1.speakeasy.net/speedtest/random4000x4000.jpg30MbImagen aleatoria 4000×4000
Dallashttp://speedtest1.dfw1.speakeasy.net/speedtest/random500x500.jpg494KbImagen aleatoria 500×500
Dallashttp://speedtest1.dfw1.speakeasy.net/speedtest/random1000x1000.jpg1.9MbImagen aleatoria 1000×1000
Dallashttp://speedtest1.dfw1.speakeasy.net/speedtest/random2000x2000.jpg7.5MbImagen aleatoria 2000×2000
Dallashttp://speedtest1.dfw1.speakeasy.net/speedtest/random3000x3000.jpg17MbImagen aleatoria 3000×3000
Dallashttp://speedtest1.dfw1.speakeasy.net/speedtest/random4000x4000.jpg30MbImagen aleatoria 4000×4000
Chicagohttp://speedtest1.chi1.speakeasy.net/speedtest/random500x500.jpg494KbImagen aleatoria 500×500
Chicagohttp://speedtest1.chi1.speakeasy.net/speedtest/random1000x1000.jpg1.9MbImagen aleatoria 1000×1000
Chicagohttp://speedtest1.chi1.speakeasy.net/speedtest/random2000x2000.jpg7.5MbImagen aleatoria 2000×2000
Chicagohttp://speedtest1.chi1.speakeasy.net/speedtest/random3000x3000.jpg17MbImagen aleatoria 3000×3000
Chicagohttp://speedtest1.chi1.speakeasy.net/speedtest/random4000x4000.jpg30MbImagen aleatoria 4000×4000
Atlantahttp://speedtest1.atl1.speakeasy.net/speedtest/random500x500.jpg494KbImagen aleatoria 500×500
Atlantahttp://speedtest1.atl1.speakeasy.net/speedtest/random1000x1000.jpg1.9MbImagen aleatoria 1000×1000
Atlantahttp://speedtest1.atl1.speakeasy.net/speedtest/random2000x2000.jpg7.5MbImagen aleatoria 2000×2000
Atlantahttp://speedtest1.atl1.speakeasy.net/speedtest/random3000x3000.jpg17MbImagen aleatoria 3000×3000
Atlantahttp://speedtest1.atl1.speakeasy.net/speedtest/random4000x4000.jpg30MbImagen aleatoria 4000×4000
Nueva Yorkhttp://speedtest1.nyc1.speakeasy.net/speedtest/random500x500.jpg494KbImagen aleatoria 500×500
Nueva Yorkhttp://speedtest1.nyc1.speakeasy.net/speedtest/random1000x1000.jpg1.9MbImagen aleatoria 1000×1000
Nueva Yorkhttp://speedtest1.nyc1.speakeasy.net/speedtest/random2000x2000.jpg7.5MbImagen aleatoria 2000×2000
Nueva Yorkhttp://speedtest1.nyc1.speakeasy.net/speedtest/random3000x3000.jpg17MbImagen aleatoria 3000×3000
Nueva Yorkhttp://speedtest1.nyc1.speakeasy.net/speedtest/random4000x4000.jpg30MbImagen aleatoria 4000×4000
Washingtonghttp://speedtest1.wdc1.speakeasy.net/speedtest/random500x500.jpg494KbImagen aleatoria 500×500
Washingtonghttp://speedtest1.wdc1.speakeasy.net/speedtest/random1000x1000.jpg1.9MbImagen aleatoria 1000×1000
Washingtonghttp://speedtest1.wdc1.speakeasy.net/speedtest/random2000x2000.jpg7.5MbImagen aleatoria 2000×2000
Washingtonghttp://speedtest1.wdc1.speakeasy.net/speedtest/random3000x3000.jpg17MbImagen aleatoria 3000×3000
Washingtonghttp://speedtest1.wdc1.speakeasy.net/speedtest/random4000x4000.jpg30MbImagen aleatoria 4000×4000
Madridhttp://www.testdevelocidad.es/speedtest/random500x500.jpg494KbImagen aleatoria 500×500
Madridhttp://www.testdevelocidad.es/speedtest/random1000x1000.jpg1.9MbImagen aleatoria 1000×1000
Madridhttp://www.testdevelocidad.es/speedtest/random2000x2000.jpg7.5MbImagen aleatoria 2000×2000
Madridhttp://www.testdevelocidad.es/speedtest/random3000x3000.jpg17MbImagen aleatoria 3000×3000
Madridhttp://www.testdevelocidad.es/speedtest/random4000x4000.jpg30MbImagen aleatoria 4000×4000
Madridhttp://testvsvll2.ono.es/speedtest/random500x500.jpg494KbImagen aleatoria 500×500
Madridhttp://testvsvll2.ono.es/speedtest/random1000x1000.jpg1.9MbImagen aleatoria 1000×1000
Madridhttp://testvsvll2.ono.es/speedtest/random2000x2000.jpg7.5MbImagen aleatoria 2000×2000
Madridhttp://testvsvll2.ono.es/speedtest/random3000x3000.jpg17MbImagen aleatoria 3000×3000
Madridhttp://testvsvll2.ono.es/speedtest/random4000x4000.jpg30MbImagen aleatoria 4000×4000
Badajozhttp://host1.cablexnet.net/host2/speedtest/random500x500.jpg494KbImagen aleatoria 500×500
Badajozhttp://host1.cablexnet.net/host2/speedtest/random1000x1000.jpg1.9MbImagen aleatoria 1000×1000
Badajozhttp://host1.cablexnet.net/host2/speedtest/random2000x2000.jpg7.5MbImagen aleatoria 2000×2000
Badajozhttp://host1.cablexnet.net/host2/speedtest/random3000x3000.jpg17MbImagen aleatoria 3000×3000
Badajozhttp://host1.cablexnet.net/host2/speedtest/random4000x4000.jpg30MbImagen aleatoria 4000×4000
Puerto de Santa Maríahttp://speedtest.cyberneticos.net/speedtest/random500x500.jpg494KbImagen aleatoria 500×500
Puerto de Santa Maríahttp://speedtest.cyberneticos.net/speedtest/random1000x1000.jpg1.9MbImagen aleatoria 1000×1000
Puerto de Santa Maríahttp://speedtest.cyberneticos.net/speedtest/random2000x2000.jpg7.5MbImagen aleatoria 2000×2000
Puerto de Santa Maríahttp://speedtest.cyberneticos.net/speedtest/random3000x3000.jpg17MbImagen aleatoria 3000×3000
Puerto de Santa Maríahttp://speedtest.cyberneticos.net/speedtest/random4000x4000.jpg30MbImagen 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 6 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