entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

Test de velocidad PHP

Tengo 2 hosting contratados en diferentes compañias y quiero hacer un testeo de la velocidad de transferencia.
Entiendo que los test de velocidad se hacer a partir de la descarga de archivo, pero yo estoy mas interesado en los uploads de los hosting.
Ahora bien, si yo desde mi casa le envio un archivo a ambos servidores seguro que se veria afectada por la velocidad de internet de mi casa (que no es tan buena).
Entonces estaba pensando en correr un script php desde el servidor (ya que no tengo acceso por consola a los hosting) y ver la velocidad de transferencia directamente desde ahi.

Lo que estoy buscando es un script armado, estuve buscando por google pero no encontre lo que quería. Tambien supongo que lo podria hacer casero, usando la extension curl, trayendome un archivo de algun servidor, medir los tiempos, hacer las conversiones de acuerdo a los bits transmitidos, bla, bla, pero tendria que renegar bastante, por eso en primera instancia seria bueno encontrar algun script ya hecho.

Alguien vio algo parecido?

2 Respuestas

1voto

carlossevi Puntos63580

He encontrado este pequeño script que descarga un fichero de los megas que necesites y calcula la velocidad media:

<?php
$link = 'cachefly.cachefly.net/100mb.test';
$start = time();
$size = filesize($link);
$file = file_get_contents($link);
$end = time();

$time = $end - $start;
$size = $size / 1048576;
$speed = $size / $time;
echo "Server's speed is: $speed MB/s";
?>

0voto

ibarragp comentado

Tome tu ejemplo y le hice unas modificaciones, el time lo tome como real.
le puse "http://" sino me daba error
el filesize me da error, lo comenté.
pero el file_get_contents no parece tirar error, con 10mb pareciera andar bien, con 100mb no lee nada (intente aumentando la memoria pero no da datos bien).

<?php
header("Content-Type:text/plain");
ini_set('display_errors', true);
error_reporting(E_ALL);
echo "Old max_execution: ".ini_get('max_execution_time')."s"."\n";
ini_set('max_execution_time', 300);
echo "New max_execution: ".ini_get('max_execution_time')."s"."\n";
echo "Old memory_limit: ".ini_get('memory_limit')."M"."\n";
ini_set("memory_limit", "500M");
echo "New memory_limit: ".ini_get('memory_limit')."M"."\n";

$tamañoArchivo = 100;
$link = 'http://cachefly.cachefly.net/'.$tamañoArchivo.'mb.test';

$start = microtime_float();
//$size = filesize($link);
$file = file_get_contents($link);
$end = microtime_float();

echo "\n";
$time = $end - $start;
//$size = $size / $cantBytes;
$size = $tamañoArchivo;
$speed = $size / $time;
echo "Server's speed is: ".$speed." MB/s (time: ".$time."s; Size:".$size."mb)";

function microtime_float()
{
    list($useg, $seg) = explode(" ", microtime());
    return ((float)$useg + (float)$seg);
}
?>

Pero no logro que funcione bien aun.

0voto

carlossevi comentado

Es posible que la ejecución del PHP llegue al tiempo máximo permitido por tu hosting y mate el proceso sin que haya terminado la descarga. ¿Has probado a ir incrementando el tamaño progresivamente?

0voto

ibarragp comentado

No lo creo, cuando pongo el archivo de 100mb, el script tarda 1ms y llega a la ultima linea del echo, pero obviamente no descargo nada.

0voto

ibarragp Puntos360

Creo que de aca: http://www.linux-party.com/index.php/29-internet/9035-comprobar-la-velocidad-de-internet-desde-la-linea-de-comandos-en-linux capaz que se puede sacar algo. el finde lo voy a ver con mas detenimiento.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta