Ankündigung

Einklappen
Keine Ankündigung bisher.

paralleles ausführen von snmpget bringt apache zum absturzt

Einklappen

Neue Werbung 2019

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

  • paralleles ausführen von snmpget bringt apache zum absturzt

    in folgender Funktion mache ich eine SNMP-Abfrage auf einen Drucker, um dessen Daten auszulesen:
    PHP-Code:
    function callSNMP($IP)
    {
            
    //alle benötigten OIDs durchgehen
                
    $daten["IP"] = $IP;
            
    $OIDValue false;
            for ( 
    $x 0$x sizeof ($_SESSION["OIDS"]); $x++ )
            {         
                    
    $a = @snmpget("$IP""public"key($_SESSION["OIDS"]),50000); 
                        
    $inhalt "";
                    if (
    $a)
                    { 
    (nur ein teil)
    Diese wird mittels Ajax in einer schleife aufgerufen (IP-Range von 1-50)

    Wenn ich das alleine aufrufe, gehts wunderbar und er scannt mir den gesamten bereich sauber ab. liefert mir alle daten und supi!

    Nur sobald ein zweiter PC zur gleichen Zeit die abfrage ausführt (auch mit einem anderen IP bereich) stürtz mein apache ab.
    im log selber finde ich nix was mir helfen würde.

    Kennt einer das problem?
    Was kann man dagegen unternehmen?

    mfg Puccini


  • #2
    Die Funktion snmpget scheint nicht reentrant zu sein. Vermutlich verwendet die Funktion intern eine globale Datenstruktur, die beim kaskadierenden Aufruf überschrieben wird...

    PHP als Apachemodul ist nicht threadsicher, probier mal die CGI Schnittstelle aus...
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      wie?

      CGI?

      naja, ich such mal.
      danke erstmal

      Kommentar


      • #4
        Apache stürtz bei gleichzeitigem SNMP im PHP ab

        Hi.

        ich hab das Problem, das wenn ich von zwei unterschiedlichen rechnern aus gleichzeitig ein snmpget mache mein Apache scheinbar überfordert ist und abstützt...

        ich nutze XAMPP auf einer XP-Maschine.

        Der snmp-abruf geht von einem rechner aus supi!
        Ich lasse eine Schleife laufen wo ich die IP's von 1-100 durchscanne.
        Wenn dies jedoch 2 rechner machen, kommt es zu absturzt.
        folgendes steht im Log:

        Code:
        [Fri May 14 13:30:11 2010] [notice] Parent: child process exited with status 3221225477 -- Restarting.
        PHP Warning:  PHP Startup: Unable to load dynamic library 'E:\\xampp\\php\\ext\\php_xmlwriter.dll' - Das angegebene Modul wurde nicht gefunden.\r\n in Unknown on line 0
        [Fri May 14 13:30:19 2010] [notice] Apache/2.2.8 (Win32) DAV/2 mod_ssl/2.2.8 OpenSSL/0.9.8g mod_autoindex_color PHP/5.2.5 mod_perl/2.0.3 Perl/v5.8.8 configured -- resuming normal operations
        [Fri May 14 13:30:19 2010] [notice] Server built: Jan 18 2008 00:37:19
        [Fri May 14 13:30:19 2010] [crit] (22)Invalid argument: Parent: Failed to create the child process.
        [Fri May 14 13:30:19 2010] [crit] (OS 6)Das Handle ist ungltig.  : master_main: create child process failed. Exiting.
        [Fri May 14 13:30:49 2010] [notice] Parent: Forcing termination of child process 36
        Die Lib "php_xmlwriter.dll" hab ich auch im angegebenen ordner liegen! scheinbar aber net die richtige .... diese hab ich glaub ich selber irgendwann mal nachträglich runtergeladen, da sie fehlte.

        dennoch weis ich nicht was diese lib mit dem absturzt zu tun haben soll.

        es muss am gleichzeitigen snmpget liegen...

        so sieht der anfang der Schleife aus:
        Code:
        		for ( $x = 0; $x < sizeof ($_SESSION["OIDS"]); $x++ )
        		{ 		
        				$a = @snmpget("$IP", "public", key($_SESSION["OIDS"]),50000); 
        					$inhalt = "";
        				if ($a)
        				{
        In "$_SESSION["OIDS"]" wird nur die zu untersuchende OID gespeichert, dies sind ca 8.

        Die gesamte Funktion wird von einer Ajax-Anwendung aufgerufen, welche die 100 IP's durchgeht.
        Dabei wird immer eine IP zum server geschickt, die OID'S swerden geprüft und das ergebnis zurückgeschickt. dann erst wird die nächste IP angescannt.

        Wo könnte ich noch schauen wegen Fehlern??

        Danke euch

        Kommentar


        • #5
          http://www.php.de/php-einsteiger/675...-absturzt.html
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar


          • #6
            o.O

            verdaaammt!
            ich hatte extra gesucht und gesucht -.-
            gibts doch garnet.

            mir war auch so als hätte ich das schonmal geposted!

            Danke dir. ich mach im alten thread weiter.

            Kommentar


            • #7
              ich hab mir jetzt folgendes Modul (fcgi) runtergeladen:
              mod_fcgid - FastCGI interface module for Apache 2 - The Apache HTTP Server Project

              und die so und pdb in den ordner apache/modules gepackt.

              dann in der http.conf
              LoadModule fcgid_module modules/mod_fcgid.so
              eingefügt und mein apache neugestartet.

              wie kann ich jetzt prüfen ob das richtig läuft???
              in der PHPInfo taucht das wort fcgi ab und zu mal auf...

              Kommentar


              • #8
                [MOD: Merge]
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar

                Lädt...
                X