Temat: Testowanie serwera i połączenia
Data: 2005-11-28 o godz. 17:27:46
Autor: As


Poniższy skrypt służy do testowania wydajności łącza oraz serwera. Funkcja test_serwera() pobiera 3 argumenty, dwa ostatnie są opcjonalnie (Pierwszy argument to URL, który ma zostać przetestowany, drugi argument wskazuje ile razy ma być powtórzony test domyślnie = 5, trzeci natomiast mówi z jaką dokładnością zostaną przedstawione wyniki domyślnie = 5, czyli tylko pięć pierwszych cyfr).

Kod PHP
001 <?php
002
003 # Ekipa TS (http://Twoja-Strona.Net)
004
005 function getmicrotime() {
006  list($usec, $sec) = explode(" ",microtime());
007  return ((float)$usec + (float)$sec);
008 }
009
010 function test_serwera($adres, $max="5", $dokladnosc_wyniku="5") {
011
012  if($adres==""||!@is_numeric($max)||!@is_numeric($dokladnosc_wyniku)){
013     echo"Błąd: niepoprawny argument...";
014  } else {
015    
016     $URL = $adres;
017     $MAX = $max;
018     $dokladnosc = $dokladnosc_wyniku;
019
020     $tablica = array();
021     $tablica2 = array();
022
023     echo"Test wydajności, wczytywania strony (".$URL.")<br>";
024
025     for($i=1;$i<$MAX+1;$i++){
026         $time_start = getmicrotime();
027         if(!@file($URL)){break;}
028         $time_end = getmicrotime();
029         $time = $time_end - $time_start;
030         $tablica[] = $time;
031         echo "<li>".$i.".) Test wydajności - (".@substr($time,0,$dokladnosc).") sek.</li><br>";
032     }
033
034     $maxczas = 0;
035     foreach($tablica as $czas){
036             $maxczas += $czas;
037     }
038
039     $srednio = $maxczas/$MAX;
040
041     echo"Łącznie: (".@substr($maxczas,0,$dokladnosc).") sek.<br>";
042     echo"Średnio: ~ (".@substr($srednio,0,$dokladnosc).") sek.<br><hr>";
043
044     echo"Test połączenia z (".$URL.")<br>";
045
046     for($i=1;$i<$MAX+1;$i++){
047         $time_start2 = getmicrotime();
048         $lacze = @parse_url($URL);
049         $f_lacze = @fsockopen($lacze['host'], "80", $errno, $errstr, 15);
050      
051         if(!$f_lacze){
052            echo"<li>Błąd: ".$errno." --- (".$errstr.")</li><br>";
053            break;
054         } else {
055            $time_end2 = getmicrotime();
056            $time2 = $time_end2 - $time_start2;
057            echo"<li>Czas łączenia z serwerem: ~ ".@substr($time2,0,$dokladnosc)." sek.</li><br>";
058            $tablica2[] = $time2;
059         }
060     }
061
062     $maxczas2 = 0;
063     foreach($tablica2 as $czas2){
064             $maxczas2 += $czas2;
065     }
066
067     $srednio2 = $maxczas2/$MAX;
068
069     echo"Łącznie: (".@substr($maxczas2,0,$dokladnosc).") sek.<br>";
070     echo"Średnio: ~ (".@substr($srednio2,0,$dokladnosc).") sek.<br>";
071  }
072  
073 }
074
075 # Wywołanie Testu
076
077 # np. najbardziej optymalne
078
079 test_serwera('http://wp.pl');
080
081 ?>


Przykład użycia:

Test wydajności, wczytywania strony (http://wp.pl)
  • 1.) Test wydajności - (5.668) sek.

  • 2.) Test wydajności - (5.384) sek.

  • 3.) Test wydajności - (4.816) sek.

  • 4.) Test wydajności - (6.223) sek.

  • 5.) Test wydajności - (5.585) sek.

  • Łącznie: (27.67) sek.
    Średnio: ~ (5.535) sek.

    Test połączenia z (http://wp.pl)
  • 1.) Czas łączenia z serwerem: ~ 0.099 sek.

  • 2.) Czas łączenia z serwerem: ~ 0.090 sek.

  • 3.) Czas łączenia z serwerem: ~ 0.228 sek.

  • 4.) Czas łączenia z serwerem: ~ 0.090 sek.

  • 5.) Czas łączenia z serwerem: ~ 0.140 sek.

  • Łącznie: (0.649) sek.
    Średnio: ~ (0.129) sek.

    Pobierz Skrypt



    Artykuł jest z Twoja-Strona.Net
    http://twoja-strona.net/html

    Adres tego artykułu to:
    http://twoja-strona.net/html/Biblioteka_Art362.html