steve: CGI -Aufruf immer neue Instanz von Perl wird gesartet

hallo zusammen,

ich habe für eine firma ein cgi-anwendung mit perl programmiert.

nun ruft mich der netzwerkadmin an, dass bei jedem aufruf des tools eine perl instanz gestartet wird und demnach das system stark belastet wird.

ich kann dies an meinen testsystem nicht nach vollziehen?

kann es sein, dass ein cgi-programm immer eine neue perl-instanz aufruft?

in der firma wird ein windows server eingesetzt?

thx

steve

  1. Hi,

    kann es sein, dass ein cgi-programm immer eine neue perl-instanz aufruft?

    Ich glaube schon, das war meine erste Vermutung nach dem Lesen der ersten Sätze ;)

    in der firma wird ein windows server eingesetzt?

    Schade. *scnr*

    Kosmos

    1. Hi Kosmos,

      »» kann es sein, dass ein cgi-programm immer eine neue perl-instanz aufruft?

      und was kann man da machen?

      Mir wurde gesagt, ich soll die Perl-Routinen in eine ASP-Anwendung einbetten ....

      Weist du was dazu?

      Bye

      Steve

  2. 你好 steve,

    nun ruft mich der netzwerkadmin an, dass bei jedem aufruf des tools eine
    perl instanz gestartet wird [...]

    Klar -- das ist die Funktionsweise von CGI :) Fuer jeden Aufruf wird der
    Interpreter neu gestartet.

    [...] und demnach das system stark belastet wird.

    Dann muss der Administrator entsprechende Schritte unternehmen (z. B.
    Techniken wie mod_fastcgi oder mod_perl).

    in der firma wird ein windows server eingesetzt?

    Welcher? IIS? Lotus Domino? In dem Fall kann man da nichts tun, “das ist
    halt so”.

    再见,
     CK

    --
    Das Sein entsteht aus dem Nicht-Sein.
    http://wwwtech.de/
    1. hi,

      und wenn ich die Routine in ASP umschreibe, ist dann die Belastung geringer?

      Der Admin hat mir gesagt ich soll meine Perl-Routinen in ASP einbetten, dann wird der Interpreter nur einaml gestartet

      Welcher? IIS? Lotus Domino? In dem Fall kann man da nichts tun, “das ist
      halt so”.

      Ich glaube es ist ein IIS.

      Danke Dir

      Steve

      1. 你好 Steve,

        und wenn ich die Routine in ASP umschreibe, ist dann die Belastung
        geringer?

        In ASP kannst du nichts schreiben :) ASP ist nur eine Schnittstelle.
        Meinst du jetzt VBScript? In dem Fall: wahrscheinlich ja, der
        ASP-Interpreter AFAIR kann von Haus aus schon VBScript.

        Der Admin hat mir gesagt ich soll meine Perl-Routinen in ASP einbetten,
        dann wird der Interpreter nur einaml gestartet

        Dann muesstest du schon Perl.NET und ASP.NET benutzen. Ansonsten muss
        AFAIK der WSH auch wieder jedesmal eine Instanz des Interpreters starten.
        Aber da nagle mich jetzt nicht drauf fest, das weiss ich nicht genau,
        vielleicht kann dir da ja Martin Speiser weiterhelfen.

        再见,
         CK

        --
        To define recursion, we must first define recursion.
        http://wwwtech.de/
    2. Hi CK,

      nun ruft mich der netzwerkadmin an, dass bei jedem aufruf des tools eine
      perl instanz gestartet wird [...]

      Klar -- das ist die Funktionsweise von CGI :) Fuer jeden Aufruf wird der
      Interpreter neu gestartet.

      [...] und demnach das system stark belastet wird.

      heisst das,dass use CGI gar nicht so doll sicher ist?
      Ich benutzte nähmlich use CGI für meinen shop und parse damit.
      Natürlich im einklang von use strict,aber dennoch würde mich sehr interessieren ob das unter umständen stark belastend ist für den server.
      Grüsse vom Alain

      1. heisst das,dass use CGI gar nicht so doll sicher ist?

        Oh herrje Alain :-(

        CGI ist die Schnittstelle des Webservers....
        Du hast das Kapitel in selfhtml gelesen http://de.selfhtml.org/cgiperl/intro/cgihtml.htm?

        Ich benutzte nähmlich use CGI für meinen shop und parse damit.

        Was du meinst ist das CGI Modul und eigentlich sollte man dieses für mehr als nur das parsen einsetzen, das es dir ermöglicht Perl code zu schreiben ohne eine einzige Zeile HTM code.
        selfhtml bietet einen kurzen Überblick http://de.selfhtml.org/cgiperl/module/cgi.htm#htmlausgaben
        aber es kann noch viel, viel mehr http://www.perldoc.com/perl5.8.4/lib/CGI.html

        Struppi.

  3. nun ruft mich der netzwerkadmin an, dass bei jedem aufruf des tools eine perl instanz gestartet wird und demnach das system stark belastet wird.

    Ich würd mir wirklich mal Gedanken machen, ob deine Anwendung wirklcih so einfach ist wie bisher behauptest.

    Wie schon erwähnt läuft hier selbst auf einem P100 kleine Anwenungen flott durch.

    ich kann dies an meinen testsystem nicht nach vollziehen?

    kann es sein, dass ein cgi-programm immer eine neue perl-instanz aufruft?

    Das ist so, aber eigentlich sollte auch das kein Problem sein.
    Vielleicht ist ja auhc der Server falsch konfiguriert.

    Struppi.

  4. Hallo steve,

    ich habe für eine firma ein cgi-anwendung mit perl programmiert.

    nun ruft mich der netzwerkadmin an, dass bei jedem aufruf des tools eine perl instanz gestartet wird und demnach das system stark belastet wird.

    Meint der Herr Admin möglicherweise, dass bei jedem (neuen) Aufruf eine neue Perl-Instanz gestartet wird, obwohl die Perl-Instanzen von den vorherigen Aufrufen noch laufen? Dann solltest du schnell mal dein Skript überprüfen. Vielleicht wird es nicht beendet (mögliche Ursachen: Endlosschleifen, Rekursion, usw.)

    1. "Meint der Herr Admin möglicherweise, dass bei jedem (neuen) Aufruf eine neue Perl-Instanz gestartet wird, obwohl die Perl-Instanzen von den vorherigen Aufrufen noch laufen?"

      Ja, der Herr Admi sagt, unter ein IIS-Server ist so, dass immer wenn eine datei xy.pl aufgerufen wird, eine neue perl-instanz gestartet wird und dann natürlich wieder geschlossen wird, wenn die routine zu ende ist.

      d.h. wenn gleichzeitig 10 user das skript aufrufen sind 10 perl instanzen gestartet

      "Dann solltest du schnell mal dein Skript überprüfen. Vielleicht wird es nicht beendet (mögliche Ursachen: Endlosschleifen, Rekursion, usw.)"

      also am skript kann es nicht liegen , jede Routine liefert ein ergebnis.

      bye

      steve

      1. Ja, der Herr Admi sagt, unter ein IIS-Server ist so, dass immer wenn eine datei xy.pl aufgerufen wird, eine neue perl-instanz gestartet wird und dann natürlich wieder geschlossen wird, wenn die routine zu ende ist.

        d.h. wenn gleichzeitig 10 user das skript aufrufen sind 10 perl instanzen gestartet

        Das ist völlig normal und läßt sich nur mit den von Christian angedeuteten Methoden ändern.
        https://forum.selfhtml.org/?t=95955&m=582872
        (wobei ich nicht weiß obn es einen solchen Möglichkeit auch beim IIS gibt)

        "Dann solltest du schnell mal dein Skript überprüfen. Vielleicht wird es nicht beendet (mögliche Ursachen: Endlosschleifen, Rekursion, usw.)"

        also am skript kann es nicht liegen , jede Routine liefert ein ergebnis.

        Dein Aussagen lassen bisher nur 2 schlußfolgerungen zu:

        • entweder hat der admin keine Ahnung
        • oder du

        Im ersten Fall weiß ich nicht was ma dir raten soll, evtl. ein Buch über Serverprozesse oder sowas.

        Der zweite Fall führt zum Schlus, das du evtl. nicht in der Lage bist genau zu analysieren was dein Propgramm macht. "jede Routine liefert ein Ergebnis" war nicht die Antwort auf die Frage. Wie ich dir schon mal gesagt habe, ich habe auf einem UrUralt Rechner (m. Win95) keine Probleme mit Perl, trotzdem mache ich natürlich immer wieder Fehler in den Programmen die zu einer Endlosschleife oder zum Aufhängen des Prozesse führen können. Oder es gibt Module die eine extreme Last erzeugen. Da wir aber so gut wie gar nichts über dein Programm Wissen, läßt sich eigentlich nichts dazu sagen. Entweder du versuchst mehr über dein Programm (und evtl. deinen Programmierstil) rauszufinden oder du versuchst uns zu erklären was und wie du es genau machst.

        Struppi.