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)
Pingback: Bitacoras.com /
Pingback: Problema/consulta – Ayuda, soy nuevo en Linux… /
Genial, funciona!!!
Gracias !! Yo pensaba que en unos años no funcionaría y habría que cambiar algo 🙂