Re: Template mit Fehler gesucht - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Sander (8133 Beiträge) am Donnerstag, 21.Juni.2007, 22:41.
    Re: Template mit Fehler gesucht

      oder einfach

      vardump inkludieren
      out vardump(\%_cgi,"_cgi");
      

      analog für die anderen hashes.
      nur 6 mal geladen? hmm, ich habs ja selbst schon auf 10 accounts laufen ;)
      zum debuggen is das nämlich der hit.


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von mk (966 Beiträge) am Freitag, 15.Juni.2007, 20:42.
    Template mit Fehler gesucht

      Hallo,

      jetzt beobachte ich wenn ich am Rechner bin mit putty und de befehl top, was auf meinem Server passiert.
      So sehe ich, das im Normalfall alles ok ist, auch das eine Reorganisation sehr viel verbraucht und auch nach dem schließen de Browasefenster weiterläuft ne Weile.
      Jetzt zu meinem Problem, es gibt bei mir wohl ein Template welches sehr selten alleine oder mit bestimmten Parametern aufgerufen wird und enorm lange läuft.
      Gibt es ne Möglichkeit herrauszufinden was dies ist?
      Es muß auch schon vor dem Umzug gewesen sein.

      Michael

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Freitag, 15.Juni.2007, 21:47.
    Re: Template mit Fehler gesucht

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Sonntag, 17.Juni.2007, 19:50.
    Re: Template mit Fehler gesucht

      sorry, Pouraga, aber das hilft leider nicht beim Herausfinden des Baseportal-Templatenamens. Es wird da immer nur der Status der BasePortal.pl angezeigt und nicht, welches Template (nun, wie auch, da ja die baseportal.pl die Templates mittels require einliest und man nicht mal mit BasePortal-Mitteln rausbekommt, wie denn wann was für ein Template gerade läuft - bspw. per include)

      Wenn es denn doch eine Lösung dafür gäbe, wäre ich auch an Hinweisen dazu interessiert (weil es immer mal passieren kann, dass ein wildgewordenes Script oder Scriptteil plötzlich und unerwartet den Server anhält). Aber ich glaub da hat selbst Christoph noch nix gefunden, denn sonst wäre es ja ein Leichtes, Ressourcenfresserscripte schnell zu lokalisieren und abzuschießen bzw. den Besitzer oder Betreiber zu informieren....

     Antworten

    Beitrag von mk (966 Beiträge) am Dienstag, 19.Juni.2007, 22:16. WWW: vokabeltrainer-online.net
    Re: Template mit Fehler gesucht

      hat keine eine Lösung,
      hab heute Abend nach einiger Zeit wieder 2 killen müssen.
      nur wie finde ich den (das Template) Verursacher?

      Michael

     Antworten

    Beitrag von richard (1187 Beiträge) am Mittwoch, 20.Juni.2007, 08:31. WWW: posaunenchor-rhoden.de
    Re: Template mit Fehler gesucht

      Schlage mal vor, die Laufzeiten der in Betracht kommenden Skripte nicht (nur) anzuzeigen sondern auch abzuspeichern, wenn eine festgelegte Laufzeit überschritten wird und das dann auszuwerten.

      Muß man halt in die in Betracht kommenden Templates einbauen, eventuell in einen einheitlichen Fußbereich.

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 20.Juni.2007, 10:03.
    Re: Template mit Fehler gesucht

      hast du dazu ne Idee zur Realisierung ? - das ist wirklich ein wichtiges fehlendes Fature
      Wenn eine Endlosschleife irgendwo vor dem Fussbereich kommt, dann wird nie abgespeichert, weil dieser Teil nicht erreicht wird.

      Das Problem ist doch hier offenbar die Sporadik, mit der es auftritt.

      Wenn es eine einfache Möglichkeit in BP gäbe, zu loggen, welches Template wann von wem (also die URL) aufgrufen und wieder beendet wird, dann wäre alles klar, und man hätte eine universelle Laufzeit- und Aufrufkontrolle, wildgewordene oder auch langlaufende Scripte könnten eindeutig lokalisiert werden (auch wenns gewollt ist, man kann so bspw. komplexe, lang laufende Auswertungsscripte auf die Nachtstunden verlegen) - aber im Momment ist das leider nur ein Fischen im Trüben.

      Selbst die Entwickler von BasePortal können n i c h t feststellen, welches Script von welchem Nutzer wann wie lange gelaufen ist. (oder sollten Sie und wir wissen es nur nicht?)
      Es kann nur festgestellt werden, dass irgendein baseportal.pl-Prozess (vielleicht auch noch von welchem Nutzer) lang läuft. Welches Template das verursacht ist vollkommen aussen vor.

      Lösung ist nur von den Entwicklern möglich - Ansatz:
      - jeder Start der baseportal.pl wird in ein Logfile geschrieben (müsste ja noch über die access.log von apache machbar sein)
      - jedes Template welches die baseportal.pl öffnet und ausführt wird zur Laufzeit der baseportal.pl in einen Hash der baseportal.pl geschrieben, gleichzeitig wird der Start bzw. das Laden jedes Benutzer-Templates direkt ans Logfile angehängt (damit man eben auch nach Abschießen der Baseportal.pl erkennen kann, welches wann geladen wurde)
      - Nach Abarbeitung der/des Templates und vor Beendigung der baseportal.pl werden die Hashdaten in ein Text-Logfile bspw. im _user-Verzeichnis geschrieben und ein Beendigungscode, damit man erkennt, dass der Thread ordnugnsgemäß (also nicht gewaltsam durch Nutzereingriff) beendet wurde.
      Wichtige Größen wären die PID, Startzeit, Endzeit des Baseportal-Prozesses, Name des geladenen und abgearbeiteten Templates (Includes wäre sinnvoll mit einzuschließen)
      - per Logdatei-Check wird abgeprüft, wie gross und alt die Logdatei ist, wenn sie zu gross oder zu alt ist wird ein zusätzliches Script ausgeführt welches entweder die Logdatei komprimiert und eine neu anlegt (täglich) und/oder ältere (bspw. älter als 7 Tage) löscht.

      Leider ist es ja nicht möglich, sowas zu versuchen einzubauen. (*sarkasmus on* im OS-Bereich würde das kein Problem darstellen, wäre schon längst von inrgeneinem Profi gefixt *sarkasmus off*)

      Nur so, wie man sich das vorstellen könnte und man als Serverbetreiber da dann sinnvoll und gezielt Ressorcenkiller finden würde....

      Ich werd mich mal im Debian-Forum versuchen schlau zu machen, vielleicht gibts ja ne Möglichkeit, die PID, den Aufrufzeitpunkt und die aufrufende URL zu loggen...das wär ja schon mal was...

     Antworten

    Beitrag von Claus (4645 Beiträge) am Mittwoch, 20.Juni.2007, 10:15. WWW: hummelexpress.de
    Re: Template mit Fehler gesucht

      >hast du dazu ne Idee zur Realisierung ?
      

      Vielleicht kann ich die ja anbieten?

      Templatename bei Aufruf in DB schreiben und am "Ende" per mod die Laufzeit reinschreiben.

      Da, wo dann keine Laufzeit drin steht (weil Ende nicht erreicht), auf Fehler prüfen.

      Nur mal so als Ansatz.

      Gruß

      Claus

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 20.Juni.2007, 11:06.
    Re: Template mit Fehler gesucht

      mhm - wahrscheinlich doch nicht schlecht die Idee...
      müsste zwar in jedes Template in den Kopf und in den Fuss, aber logischerweise könnte das funzen (es sei denn, die DB wird bei jeder Menge Aufrufen riesengross, was aber auszuprobieren wäre...)
      Danke für den Gedankenansatz.
      Grüße aus dem Erzgebirge an die BasePortaler und an die Norddeutschen... :-)

     Antworten

    Beitrag von richard (1187 Beiträge) am Mittwoch, 20.Juni.2007, 11:16. WWW: posaunenchor-rhoden.de
    Re: Template mit Fehler gesucht

       die DB wird bei jeder Menge Aufrufen riesengross, was aber auszuprobieren ...
      

      Muß nicht. Man kann die Datensätz im Falle einer kurzen Laufzeit ja direkt wieder löschen.

     Antworten

    Beitrag von Claus (4645 Beiträge) am Mittwoch, 20.Juni.2007, 11:33. WWW: hummelexpress.de
    Re: Template mit Fehler gesucht

      Na, da nich für, hast mir ja auch oft genug geholfen.;-)

      Wie richard schon schreibt, kannst du das auch direkt wieder löschen, z.B.

      wenn Laufzeit kleiner 0.25 löschen sonst Laufzeit über mod abspeichern. Damit findest Du sowohl das eine wie das andere.

      Gruß aus dem heute mal sonnigen Hamburg

      Claus

     Antworten

    Beitrag von mk (966 Beiträge) am Mittwoch, 20.Juni.2007, 20:23.
    Re: Template mit Fehler gesucht

      Dein Vorschlag müßte gehen,
      ob ich das hinkriege?
      Hab eben ein Vorgang der schon 93 Min. lief killen müssen.

      Michael

     Antworten

    Beitrag von mk (966 Beiträge) am Mittwoch, 20.Juni.2007, 21:19.
    Re: Template mit Fehler gesucht

      hab angefangen,

      das hab ich noch nicht geschaft:
      - übergebene Parameter fehlen noch
      - .runtime abzuspeichern

      weis einer wie?

      Michael

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 20.Juni.2007, 22:48.
    Re: Template mit Fehler gesucht

      $runtime=runtime;
      $cgi=serial(%_cgi);
      $sel=serial(%_sel);
      $put=serial(%_put);
      $get=serial(%_get);
      

      das kannste dann mit wegspeichern.

     Antworten

    Beitrag von mk (966 Beiträge) am Donnerstag, 21.Juni.2007, 10:59.
    Re: Template mit Fehler gesucht

      Hallo,
      wenn ich dies so in perl einfüge kommt eine Fehlermeldung das die Seite nicht da ist.
      Hab dies dann so versucht, mit dem gleichen Ergebnis:
      $cgi1=serial(%_cgi);
      $sel1=serial(%_sel);
      $put1=serial(%_put);
      $get1=serial(%_get);
      

      Hier ist wohl die Syntax nicht passend?

      Michael

     Antworten

    Beitrag von Sander (8133 Beiträge) am Donnerstag, 21.Juni.2007, 12:05.
    Re: Template mit Fehler gesucht

     Antworten

    Beitrag von mk (966 Beiträge) am Donnerstag, 21.Juni.2007, 20:55.
    Re: Template mit Fehler gesucht

      @Sander
      
      habe mir deins runtergeladen,
      hab aber keinen Ansatz was ich damit machen kann.
      ich war immerhin der sechste seit 2003 der dies holte.
      vardump muß wohl unverändert bleiben,
      dies muß ich dan bei mir einbinden aber wie bzw wo?
      <perl>
      ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)= gmtime(time);
      $sid_pr=(((($year*365)+$yday)*24+$hour)*60+$min)*60+$sec ;
      $IP=$_REMOTE_ADDR;
      $useragent=$_HTTP_USER_AGENT;
      #$cgi1=serial{%_cgi};# geht erst ab v3
      #$sel1=serial{%_sel};# geht erst ab v3
      #$put1=serial{%_put};# geht erst ab v3
      #$get1=serial{%_get};# geht erst ab v3
      put ["IP", "$IP", "sid", "$sid_pr", "useragent", "$useragent", "htx", "$htx", "cgi1", "$cgi1", "sel1", "$sel1", "put1", "$put1", "get1", "$get1"], "protokoll";
      </perl>
      

      leider waren eben 3 Prozesse zu killen.
      Ich muß was tun in der V2 da die V3 erst in unbestimmte Zeit verfügbar ist in der Lizenz.

      Michael

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Donnerstag, 21.Juni.2007, 21:18.
    Re: Template mit Fehler gesucht

      die Systemhashs, deren Namen ja bekannt sind, könnte man ja in Schleifen auslesen, in etwa so:

      ---schnipp

      foreach my $k (keys %_cgi) {
      $cgi_serial .= $k . "=" . $_cgi{$k};
      }
      

      ---schnapp

      Das könnte man ja für jeden der Systemhash machen (falls die sich so auslesen lassen) - kommt auf nen Versuch an

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Donnerstag, 21.Juni.2007, 22:15.
    Re: Template mit Fehler gesucht

      Man kann nicht mit dem Programm, Fehler im Programm finden, woher willst du wissen wann der Prozess sich aufhängt, entweder schreibt er die Daten vorher in eine DB weg oder nachher. Also sind sie da oder nicht, aber wissen welcher aufruf stehen geblieben ist weisst du dadurch trotzdem nicht.

      ein aufruf von apachectl fullstatus bringt dir in etwa so ein Bild:

         Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request
         8-0 16573 0/120/2796 _ 25.50 29 360 0.0 1.38 30.14 217.230.113.236
         ruhrpott-mini-ig.de GET /files/album_62/pic_1337_smart.jpg HTTP/1.1
         9-0 16572 0/121/2633 _ 22.69 41 1293 0.0 1.10 29.88 84.61.72.177
         ruhrpott-mini-ig.de GET
         /cgi-bin/baseportal.pl?htx=/forum&wcheck=1&range=100,100&Po
         10-0 - 0/0/269 . 0.00 1479 610 0.0 0.00 4.91 66.249.66.143 eggx.de GET
         /w/index.php?title=MediaWiki_Diskussion:Jan&action=edit HTT
         11-0 - 0/0/113 . 0.00 1483 227 0.0 0.00 1.21 89.48.169.166
         ruhrpott-mini-ig.de GET /grafik/logo/navibuttonback.gif HTTP/1.1
         12-0 - 0/0/77 . 0.00 1473 870 0.0 0.00 0.38 74.6.18.228 irgendwo.de
         GET /baseportal/see?kategorie=110&neu=&suche= HTTP/1.0
         13-0 - 0/0/21 . 0.00 1466 1021 0.0 0.00 0.12 74.6.17.170
         ruhrpott-mini-ig.de GET /baseportal/album/bild?getId=73& HTTP/1.0
         14-0 - 0/0/14 . 1.41 1400 974 0.0 0.00 0.10 74.6.18.20
      


      Wie du siehts sieht man sowol bei kurzen wie auch langen Aufruf den gesamten query string, zusammen mit prozesszeit und speichernutzung, Was willst du mehr?

     Antworten

    Beitrag von mk (966 Beiträge) am Donnerstag, 21.Juni.2007, 22:27.
    Re: Template mit Fehler gesucht

      @Pouraga
      
      wie Claus vorgeschlagen hat, kommt am Ende des Templates auch was:
      <perl>
      $laufzeit=runtime ;
      mod  "sid==$sid_pr", ["laufzeit", "$laufzeit"], "protokoll";
      </perl>
      
      Wenn keine Ziet drinn steht, simmt was nicht.

      Aber die Parameter sind schon wichtig zu wissen, da die auch viel beeinflussen.
      Mit Serverprotokollen hab ich noch keine Ahnung, wo finde ich die?
      Bei den Mietpaketen wußte ich es.

      Michael

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Donnerstag, 21.Juni.2007, 22:39.
    Re: Template mit Fehler gesucht

      Woher willst du wissen dass dieses Template überhaupt ausgeführt wird:
      Bsp.: Wenn jemand eine sehr große Datei hochlädt haut das in V2 den Speicher voll, bei manchen Konfigurationen kann das dazu führen das der apache child sich aufhängt. Dein Template würde aber erst ausgeführt sobald die Datei ganz oben ist.
       
      Genauso ist es andersrum denkbar dass sich child's durch Filelocks nicht ordentlich beenden, aber dein Template komplett durchlaufen wird.

      Serverprotokollen? Du meinst die apache Logfiles? Je nach dem was du in der httpd.conf eingestellt hast. Die zeigen aber eh nur die Vergangenheit.
      http://httpd.apache.org/docs/2.0/logs.html


      Wenn du wissen möchtest was jetzt hängt, wie gesagt
      mod_status einbinden wenn nicht schon vorhanden
      

      und dann Befehl
      apachectl fullstatus
      bzw
      apache2ctl fullstatus
      über die Konsole

     Antworten

    Beitrag von richard (1187 Beiträge) am Freitag, 22.Juni.2007, 08:09. WWW: posaunenchor-rhoden.de
    Re: Template mit Fehler gesucht

      Nachdem ich die bp interne Lösung so ein bißchen mit angestoßen habe - spricht etwas dagegen, so

       <perl>
       $deinget = "Die Werte von _get: ";
       while(@paare = each(%_get))
       {
       out "schl: $paare[0] -> ";
       out "wert: $paare[1]<br>";
      
       $deinget = $deinget."$paare[0]"."="."$paare[1]"." | ";  }  out "<br/>$deinget<br/><br/>";  </perl>


      die Systemvariablen auszulesen, in eine Stringvariable zu schreiben und die dann abzuspeichern?

      Hoffe das ist in dieser Form gut zu verstehen. Im Beispiel wird get ausgelesen, geht aber mit den anderen entsprechend.

     Antworten

    Beitrag von mk (966 Beiträge) am Freitag, 22.Juni.2007, 21:16.
    Re: Template mit Fehler gesucht

      Danke richard für die Lösung,

      dein Code klappt, hab ihn per include eingebunden zusammen mit meinem Ende Code und es geht.
      Wenn ich dies nun laufen lasse, ist sicherlich nach 2-3 Tagen mein Limit mit 100.000 Einträgen überschritten.
      Aber ich sehe was passiert.

      Michael

     Antworten

    Beitrag von mk (966 Beiträge) am Samstag, 23.Juni.2007, 15:59. WWW: brueckenbau-links.de
    Re: Template mit Fehler ist gefunden

      Durch die Protokolierung hab ich nun den ersten Übeltäter gefunden.
      Liegt warscheinlich an fehlende Parameter in Links bei den Suchmaschienen.

      Michael

     Antworten

    Beitrag von Sander (8133 Beiträge) am Donnerstag, 21.Juni.2007, 22:41.
    Re: Template mit Fehler gesucht

      oder einfach

      vardump inkludieren
      out vardump(\%_cgi,"_cgi");
      

      analog für die anderen hashes.
      nur 6 mal geladen? hmm, ich habs ja selbst schon auf 10 accounts laufen ;)
      zum debuggen is das nämlich der hit.

     Antworten

    Beitrag von richard (1187 Beiträge) am Mittwoch, 20.Juni.2007, 11:09. WWW: posaunenchor-rhoden.de
    Re: Template mit Fehler gesucht

      So wie der Claus würde ich das auch erst einmal angehen.

     Antworten

    Beitrag von mk (966 Beiträge) am Donnerstag, 12.Juli.2007, 20:46. WWW: vokabeltrainer-online.net
    Re: Template mit Fehler gesucht - die Lösung

      So hab ich es umgesetzt:

      Der Anfang des Templates
      <perl>
      include "../kopf";
      </perl>
      

      das eigentliche Template

      <perl>
      include "../fuss";
      </perl>
      

      Das Ende des Templates

      Inhalt des Kopf Templates:

      <perl>
      ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)= gmtime(time);
      $sid_pr=(((($year*365)+$yday)*24+$hour)*60+$min)*60+$sec ;
      

      $zufallszahl = int(rand(100));
      $sid_pr=$sid_pr*(1+($zufallszahl)) ;
      $get1 ="";
      $cgi1 ="";
      $sel1 ="";
      $put1 ="";
      

      $IP=$_REMOTE_ADDR;
      $useragent=$_HTTP_USER_AGENT;
      while(@paare = each(%_get))
      {
      $get1 = $get1."$paare[0]"."="."$paare[1]"." | ";
      }
      while(@paare = each(%_cgi))
      {
      $cgi1 = $cgi1."$paare[0]"."="."$paare[1]"." | ";
      }
      while(@paare = each(%_sel))
      {
      $sel1 = $sel1."$paare[0]"."="."$paare[1]"." | ";
      }
      while(@paare = each(%_put))
      {
      $put1 = $put1."$paare[0]"."="."$paare[1]"." | ";
      }
      put ["IP", "$IP", "sid", "$sid_pr", "useragent", "$useragent", "htx", "$htx", "cgi1", "$cgi1", "sel1", "$sel1", "put1", "$put1", "get1", "$get1"], "protokoll";
      #out "Test: $_Id <br>" ;
      </perl>
      

      Der Inhalt des Fuss Templates:

      <perl>
      $laufzeit=runtime ;
      mod  "sid==$sid_pr", ["laufzeit", "$laufzeit"], "protokoll";
      </perl>
      

      Geht bestimmt noch besser.

      Michael

     Antworten


     
 Liste der Einträge von 13200 bis 13350:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.11s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!