2012-07-01 14 views
5

Compré un servidor y necesito verificar su conexión a internet (velocidad).¿Cómo verifico la velocidad de carga y descarga de mi servidor?

¿Hay alguna manera fácil de hacerlo?

busqué en Google, pero no pude encontrar nada ...

Hice esto:

<?php 

$link = 'http://speed.bezeqint.net/big.zip'; 
$start = time(); 
$size = filesize($link); 
$file = file_get_contents($link); 
$end = time(); 

$time = $end - $start; 

$speed = $size/$time; 

echo "Server's speed is: $speed MB/s"; 


?> 

¿Es correcto?

+0

Para la velocidad de descarga esto me viene a la mente: instale un cliente de línea de comandos bittorrent y descargue una distribución de Linux (no demasiado nueva, pero no demasiado antigua, para que haya muchas semillas). Por lo general, todas estas semillas pueden enviar tan rápido como su servidor. – Aufziehvogel

+0

me parece bien. ¿Funciona? – PeeHaa

Respuesta

9

Probar:

<?php 

$link = 'http://speed.bezeqint.net/big.zip'; 
$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"; 


?> 
+0

lo hice: ¿Es correcto? – HtmHell

+0

Casi, generará bytes por segundo, no MB/s – lauriys

5

Si tiene el escritorio remoto, a continuación, instalar un navegador Web y vaya a speedtest.net y probar una velocidad.

Si no, aquí es cómo se puede probar la velocidad de descarga de su servidor:

  • registro como root tipo
  • wget http://cachefly.cachefly.net/100mb.test
  • verá algo así como 100%[======================================>] 104,857,600 10.7M/s - 10.7M/s es una descarga velocidad.

Si tiene más de 1 servidor, puede probar la velocidad de carga transfiriendo archivos entre 2 servidores.

0

Para la descarga, puede crear un script que va a calcular la velocidad promedio de descarga:

$start = time(true); 

$fileSize = '10240'; // if the file's size is 10MB 

for ($i=0; $i<10; $i++) { 
    file_get_contents('the_url_of_a_pretty_big_file'); 
} 

$end = time(true); 

$speed = ($fileSize/($end - $start))/$i * 8; 

echo $speed; // will return the speed in kbps 
+0

Primera línea. mictotime. Además, 100 KB = 102400 B, no 100000. – lauriys

+0

La microtime en mi humilde opinión sería mejor y más precisa. – lauriys

+0

Me di cuenta de la cosa 'microtime' pocos segundos después de la publicación. Gracias por mencionarlo. En cuanto al tamaño del archivo, en mi opinión no es importante, no haría mucha diferencia en el resultado. –

2

tenerlo conectarse a un servidor sabes corre rápido (como Google). Luego, mida cuánto tiempo lleva desde que envía el primer paquete hasta que recibe el primer paquete: ese es el tiempo de carga. El tiempo desde la recepción del primer hasta el último paquete es el tiempo de descarga. Luego divida por la cantidad de datos transferidos y ahí está su resultado.

Ejemplo:

$times = Array(microtime(true)); 
$f = fsockopen("google.com",80); 
$times[] = microtime(true); 
$data = "POST/HTTP/1.0\r\n" 
     ."Host: google.com\r\n" 
     ."\r\n" 
     .str_repeat("a",1000000); // send one megabyte of data 
$sent = strlen($data); 
fputs($f,$data); 
$firstpacket = true; 
$return = 0; 
while(!feof($f)) { 
    $return += strlen(fgets($f)); 
    if($firstpacket) { 
     $firstpacket = false; 
     $times[] = microtime(true); 
    } 
} 
$times[] = microtime(true); 
fclose($f); 
echo "RESULTS:\n" 
    ."Connection: ".(($times[1]-$times[0])*1000)."ms\n" 
    ."Upload: ".number_format($sent)." bytes in ".(($times[2]-$times[1]))."s (".($sent/($times[2]-$times[1])/1024)."kb/s)\n" 
    ."Download: ".number_format($return)." bytes in ".(($times[3]-$times[2]))."s (".($return/($times[3]-$times[2])/1024)."kb/s)\n"; 

(aparecerá un mensaje de error desde los servidores de Google, a causa de la cabecera Content-Length falta)

Ejecutar un par de veces, obtener un promedio, pero no lo hacen ejecutarlo demasiado porque no creo que a Google le guste demasiado.

+0

Gracias, pero los resultados que obtengo realmente no tienen sentido ... Cuando descargo un archivo de mi servidor está a 600kb/sy tengo una conexión a Internet de 100MB/s ... Usando su código obtuve esto : RESULTADOS: Conexión: 75.366973877ms Carga: 1,000,037 bytes en 0.192752122879s (5066.60377186kb/s) Descarga: 1,081 bytes en 2.69412994385E-5s (39183.8584071kb/s) – HtmHell

+0

Cuando descarga un archivo de su servidor, su red es el cuello de botella . Los servidores suelen tener una conexión a Internet mucho mejor, por lo que la prueba se conecta a otro servidor. –

+0

Sí, y normalmente descargo a 12 MB/s (del torrent y demás) pero desde mi servidor, solo a 600 KB/s – HtmHell

Cuestiones relacionadas