Performance Problem mit Script

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Performance Problem mit Script

    Hallo,

    ich habe ein dickes Problem mit meinen Server.
    Heut früh ging garnix mehr. Kein restart per ssh.

    Habe mal die access_log angesehen, sehr viele einträge mit
    GET /pr.php?ref=blogdefolie.com&style=1.

    Das Script ist ein Pagerank Service von uns mit über 5000 aktiven Benutzern. Kann es sein das der Server für die masse an abfragen nicht mehr reicht.

    Habe das Script gestoppt und jetzt läuft alles wieder super.

    Wie kann ich die Performance erhöhen oder doch lieber einen leistungs fähigeren server holen
    Gruß Oli

    Webdesign, Programmierung u.v.m. Börner It
    Rss Katalog Verzeichnis. RssKat
    PHP - Scripte, News, Tutorials u.v.m PHP Community Neu
    Günstige PHP Projekte nichts von der Stange Börner IT Shop

  • #2
    Wie kann ich die Performance erhöhen
    ohne code wird es arg schwer, das zu beurteilen.
    oder doch lieber einen leistungs fähigeren server holen
    was hast du denn im moment?

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Im moment habe ich einen Root Server von Strato den SR3 mit 1GB Arbeitsspeicher, SUSE Linux Professional 9.3, AMD Prozessor Opteron™
      146.

      Das Script läuft hier http://www.page-rank.cc

      welchen Code benötigst du den? Der von der datei pr.php
      Gruß Oli

      Webdesign, Programmierung u.v.m. Börner It
      Rss Katalog Verzeichnis. RssKat
      PHP - Scripte, News, Tutorials u.v.m PHP Community Neu
      Günstige PHP Projekte nichts von der Stange Börner IT Shop

      Kommentar


      • #4
        also der server sollte eigentlich ausreichen.
        welchen Code benötigst du den? Der von der datei pr.php
        wäre ganz sinnvoll, aber nur den wirklich relevanten code, also besonders passagen mit schleifen usw.

        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Die daten werden ja aus der mysql datenbank geholt.

          PHP-Code:
          function db_connect($server DB_SERVER$username DB_SERVER_USERNAME,
           
          $password DB_SERVER_PASSWORD$database DB_DATABASE$link 'db_link') {
              global $
          $link;

              if (
          USE_PCONNECT == 'true') {
                $
          $link mysql_pconnect($server$username$password);
              } else {
                $
          $link mysql_connect($server$username$password);
              }

              if ($
          $linkmysql_select_db($database);

              return $
          $link;
            } 
          kann es sein das er das pconnect verwendet. damit hatte ich schonmal probleme bei einen anderen script.

          die ausgabe der daten erfolgt damit
          PHP-Code:
           $configuration_query db_query('select configuration_key as cfgKey,
           configuration_value as cfgValue from ' 
          configuration);
            while (
          $configuration db_fetch_array($configuration_query)) {
              
          define($configuration['cfgKey'], $configuration['cfgValue']);
            }


          $ref $_GET['ref'];
          $style $_GET['style'];

          function 
          zeroFill($a$b

              
          $z hexdec(80000000); 
                  if (
          $z $a
                  { 
                      
          $a = ($a>>1); 
                      
          $a &= (~$z); 
                      
          $a |= 0x40000000
                      
          $a = ($a>>($b-1)); 
                  } 
                  else 
                  { 
                      
          $a = ($a>>$b); 
                  } 
                  return 
          $a


          function 
          mix($a,$b,$c) { 
            
          $a -= $b$a -= $c$a ^= (zeroFill($c,13)); 
            
          $b -= $c$b -= $a$b ^= ($a<<8); 
            
          $c -= $a$c -= $b$c ^= (zeroFill($b,13)); 
            
          $a -= $b$a -= $c$a ^= (zeroFill($c,12)); 
            
          $b -= $c$b -= $a$b ^= ($a<<16); 
            
          $c -= $a$c -= $b$c ^= (zeroFill($b,5)); 
            
          $a -= $b$a -= $c$a ^= (zeroFill($c,3)); 
            
          $b -= $c$b -= $a$b ^= ($a<<10); 
            
          $c -= $a$c -= $b$c ^= (zeroFill($b,15)); 

            return array(
          $a,$b,$c); 


          function 
          GoogleCH($url$length=null$init=GOOGLE_MAGIC) { 
              if(
          is_null($length)) { 
                  
          $length sizeof($url); 
              } 
              
          $a $b 0x9E3779B9
              
          $c $init
              
          $k 0
              
          $len $length
              while(
          $len >= 12) { 
                  
          $a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24)); 
                  
          $b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24)); 
                  
          $c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24)); 
                  
          $mix mix($a,$b,$c); 
                  
          $a $mix[0]; $b $mix[1]; $c $mix[2]; 
                  
          $k += 12
                  
          $len -= 12
              } 

              
          $c += $length
              switch(
          $len)               
              { 
                  case 
          11$c+=($url[$k+10]<<24); 
                  case 
          10$c+=($url[$k+9]<<16); 
                  case 
          $c+=($url[$k+8]<<8); 
                  case 
          $b+=($url[$k+7]<<24); 
                  case 
          $b+=($url[$k+6]<<16); 
                  case 
          $b+=($url[$k+5]<<8); 
                  case 
          $b+=($url[$k+4]); 
                  case 
          $a+=($url[$k+3]<<24); 
                  case 
          $a+=($url[$k+2]<<16); 
                  case 
          $a+=($url[$k+1]<<8); 
                  case 
          $a+=($url[$k+0]); 
              } 
              
          $mix mix($a,$b,$c); 
              return 
          $mix[2]; 


          function 
          strord($string) { 
              for(
          $i=0;$i<strlen($string);$i++) { 
                  
          $result[$i] = ord($string{$i}); 
              } 
              return 
          $result


          //neu


          $server="toolbarqueries.google.com";

          $time=time();




          $ziel $ref;
          $ziel str_replace ("http://www."""$ziel);
          $ziel str_replace ("www."""$ziel);
          $ziel str_replace ("http://"""$ziel);

          $url "info:"."http://www.$ziel"
          $ch GoogleCH(strord($url)); 
          $summe sprintf("6%u\n",$ch); 
          $summe str_replace("-","",$summe); 
          $summe trim($summe); 
          $google "http://$server/search?client=navclient-auto&ch=$summe&features=Rank&q=$url"
          $abfrage fopen("$google",r); 
          while(
          $zeile fgets($abfrage,1024)) { 
          if (
          ereg("Rank",$zeile)) { $daten $zeile; } 

          fclose($abfrage); 
          $pagerank substr($daten,9,9); 
          $pagerank trim($pagerank); 

            
           
          $prdomain_query db_query("select * FROM " domains " where domain_url = '".$ziel."'");
           
          $prdomain_data db_fetch_array($prdomain_query);
           
          $prdomain_url $prdomain_data['domain_url'];
           
          $prdomain_status $prdomain_data['domain_status'];




           if((
          $ziel=="$prdomain_url") and ($prdomain_status=="1") and ($pagerank!==""))
          {
           
          db_query("UPDATE " domains " SET domain_count=domain_count+1,domain_pr='".$pagerank."'
          ,domain_update='"
          .$time."' WHERE domain_url = '".$prdomain_url."'");
           } 
          Gruß Oli

          Webdesign, Programmierung u.v.m. Börner It
          Rss Katalog Verzeichnis. RssKat
          PHP - Scripte, News, Tutorials u.v.m PHP Community Neu
          Günstige PHP Projekte nichts von der Stange Börner IT Shop

          Kommentar


          • #6
            kann es sein das er das pconnect verwendet. damit hatte ich schonmal probleme bei einen anderen script.
            mach mal nur ein normales mysql_connect, mal schauen, was dann passiert.

            gruß
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Hab es mal geändert

              wo ich das script gestoppt hatte waren folgende loads

              CPU load averages: 0.16 (1 mins) , 0.24 (5 mins) , 0.18 (15 mins)

              jetzt wo das script wieder läuft sieht es so aus

              CPU load averages: 2.47 (1 mins) , 0.92 (5 mins) , 0.38 (15 mins)

              ziemlicher unterschied

              EDIT:
              habe das script wieder gestoppt, da in kürzester zeit der load auf 13 und mehr hoch ging
              Zuletzt geändert von oli; 29.08.2006, 12:57.
              Gruß Oli

              Webdesign, Programmierung u.v.m. Börner It
              Rss Katalog Verzeichnis. RssKat
              PHP - Scripte, News, Tutorials u.v.m PHP Community Neu
              Günstige PHP Projekte nichts von der Stange Börner IT Shop

              Kommentar

              Lädt...
              X