Announcement

Collapse
No announcement yet.

Stresstest Tomcat 5.5

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Stresstest Tomcat 5.5

    Hallo!

    Bin grad dabei ein Servlet zu Testen. Hab einen Lastestest gemacht, indem ich ca. 500 Anfragen "nacheinander" am dem Server schicke.
    (Ich verwende dazu Threads...)
    Bekomm dann lokal die Exception:

    Exception in thread "Thread-1542" java.lang.OutOfMemoryError: Java heap space
    oder
    java.net.SocketException: Connection reset und
    java.net.BindException: Address already in use: connect

    Und am Server bekomm ich ab und zu eine "Broken Pipe" Exception.

    Gibt es eine Möglichkeit den Fehler zu vermeiden? Das müsste man doch am Tomcat einstellen können? Sonst wär das aj eine einfache Methode den Tomcat in die Knie zu zwingen..... .
    Oder ist das Problem eher Clienseitg?

  • #2
    Was verstehst du unter "nacheinander". Solche "Anfragen" werden üblicherweise nach Filterung verworfen (DOS- Attacke)

    Fehler 1 wird dir womöglich lokal angezeigt dürfte aber vom Server kommen. Wäre erstaunlich, wenn dein Browser diesem Fehler hätte. Er könnte durch die Zuweisung von mehr Speicher behoben werden.
    Christian

    Comment


    • #3
      Also ich mach mir ca. 500 Instanzen einer Testklasse die ich von Thread ableite. In die run Methode gab ich dort die Methode die auf das Servlet zugreift. Dann ruf ich 500 mal die start() Methode auf.
      Wenn ich das ohne Threads mache, dass gibts keine Pronleme...

      Comment


      • #4
        Wieviel Speicher hast du dem Tomcat gegeben? Auf was für einem Server läuft er?
        Christian

        Comment


        • #5
          Ja das weiß ich leider nicht genau. Da bin ich mit der Technologie z uwenig vertraut.
          Also Tomcat läuft auf eine Testrechner. Also kein Apache oder so...

          Hab ein bisschen im Internet gesucht, und da meint jemand:
          In der catalina.sh die folgende zeile am anfang einfügen

          CATALINA_OPTS="-Xms128M -Xmx256M"

          Könnt das was bringen? Also da wird ja mehr Speicher zugeteilt...

          Comment


          • #6
            "Testrechner" ist keine Beschreibung eines Rechners/Betriebssystems. Das Einfügen der Zeile in die catalina.sh bringt nur dann was, wenn der "Testrechner" unter Linux ff. läuft. Läuft der Tomcat unter Windows ist der entsprechende Eintrag in der catalina.bat vorzunehmen

            set JAVA_OPTS=-XX:MaxPermSize=256m -Xmx512m

            Das sollte den Speicherfehler beheben.
            Christian

            Comment


            • #7
              ok war schlecht ausgedrückt.
              Tomcat läuft auf einem Linuxrechner ...
              Zuletzt editiert von wpb; 04.09.2009, 10:40.

              Comment


              • #8
                Fehler 1 wird dir womöglich lokal angezeigt dürfte aber vom Server kommen. Wäre erstaunlich, wenn dein Browser diesem Fehler hätte. Er könnte durch die Zuweisung von mehr Speicher behoben werden.
                Soweit ich das verstanden habe verwendet er keinen Browser sondern einen Java-Client der 500 Threads aufmacht. Wenn der OutOfMemoryError lokal kommt sollte man auch dem Client entsprechend mehr Speicher geben. Die BindException und SocketException könnten Folgefehler sein. Außerdem ist die Anzahl der TCP/IP-Ressourcen, frei zuteilbaren client ports etc. einfach begrenzt und damit auch die Rate mit der man Verbindungen auf- und zumachen kann. Darin könnten die BindExceptions begründet liegen und ev. kann man an den TCP/IP-Einstellungen am Betriebssystem was drehen. Die Broken Pipe am Tomcat könnte auch daran liegen das der Client plötzlich abbricht (wegen der Fehler) während der Tomcat noch sendet.

                Comment


                • #9
                  Originally posted by Alwin Ibba View Post
                  Soweit ich das verstanden habe verwendet er keinen Browser sondern einen Java-Client der 500 Threads aufmacht. Wenn der OutOfMemoryError lokal kommt sollte man auch dem Client entsprechend mehr Speicher geben. Die BindException und SocketException könnten Folgefehler sein. Außerdem ist die Anzahl der TCP/IP-Ressourcen, frei zuteilbaren client ports etc. einfach begrenzt und damit auch die Rate mit der man Verbindungen auf- und zumachen kann. Darin könnten die BindExceptions begründet liegen und ev. kann man an den TCP/IP-Einstellungen am Betriebssystem was drehen. Die Broken Pipe am Tomcat könnte auch daran liegen das der Client plötzlich abbricht (wegen der Fehler) während der Tomcat noch sendet.
                  Bin grad dabei ein Servlet zu Testen.
                  Da tippe ich doch erstmal mehr auf einen Browser & der hier gewählte Thread "Web-Anwendung"...
                  Zuletzt editiert von Christian Marquardt; 04.09.2009, 13:00.
                  Christian

                  Comment


                  • #10
                    Hallo!

                    Ja verwende einen Java Client.
                    Ich hab auch schon an ein Clientseitiges Problem gedacht.
                    Das mit der Broken Pipe klingt auch ganz gut (Also das der Server versucht zu senden, der Client aber schon weg ist.
                    Ich kann aber nicht verstehen, wieso der Tomcat dann nicht mehr richtig funktioniert. Wenn ich danach eine einzoge Anfrage via Browser zu senden, funktioniert das nicht mehr. Auch auf die Startseite von Tomcat komm ich dann nicht mehr.
                    Da hilft dann nur noch Tomcat stoppen und neu starten...

                    Comment


                    • #11
                      Ja verwende einen Java Client.
                      Dann nützt natürlich die Veränderung des Speichers im Tomcat nichts. Dann gib dem Client beim Start mehr Speicher mit
                      Christian

                      Comment


                      • #12
                        Das wär ja super... Denn was clientseitig passiert "kann mit egal" sein. Aber wieso ist der Neustart von Tomcat notwending?
                        Zuletzt editiert von wpb; 04.09.2009, 13:43.

                        Comment

                        Working...
                        X