Announcement

Collapse
No announcement yet.

Tomcat: TP-Processor vs. Thread

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

  • Tomcat: TP-Processor vs. Thread

    Hallo, ich versuche gerade auf einem Tomcat 4.1 herauszufinden, warum die Abarbeitung bei vielen parallelen Anfragen entschiedend langsamer wird.
    Eine Vermutung ist, dass die Anzahl Threads nicht "ausreichend ist. Beim Profiling habe ich gesehen, dass 15 TP-Processoren und 3 Threads laufen. Bedeutet dies, dass 15 Anfragen "parallel" bearbeitet werden, oder sind es nur drei?
    Wenn es nur drei sind, wie kann ich die Anzahl hochsetzen? Der Tomcat läuft auf einer Solaris 64Bit, 2-Prozessor Maschine, und sollte ein wenig mehr, als 3 Anfragen verarbeiten können.

    Vielen Dank
    Henrik

  • #2
    Hallo Henrik,

    ich kann zwar nur von einer Sun Maschine träumen, aber soweit mein Wissen reicht ist es so, daß in der Spezifikation der VM nicht geklärt ist, wie ein Java Thread im OS abgebildet ist. Hier gibt es glaub ich 2 Varianten. Eine ist die Green Thread und die andere weiß ich nicht mehr. Bei Green werden alle Java Threads in einen Thread im OS abgebildet.

    Die Anzahl der Connectoren (welche für das Entgegebnehmen der Requests verantwortlich sind) kann man natürlich verändern.

    Siehe http://tomcat.apache.org/tomcat-5.5-doc/config/http.html

    lg Dietma

    Comment


    • #3
      Hallo Thomas,
      danke für den Hinweis. Die zweite Variante heist im Übrigen "native threading" und ist bei Solaris seit der JVM 1.2 der Standard.

      Leider ist meine Frage, was genau einen TP-Prozessor von einem Thread innerhlab der Tomcat unterscheidet, noch immer offen. Wenn also noch jemand einen Idee hat, wäre ich für jeden Input sehr dankbar.

      gruß
      Henri

      Comment


      • #4
        Der TP Processor ist das Worker Object eines Threads im Tomcat.
        Jeder TP Prccessor wird für die Bearbeitung eines Request/Response
        herangezogen. Eine Bearbeitung ist immer genau einem Thread von Anfang bis Ende zugeordnet. Eine KeepAlive Verbindung oder ein lange Bearbeitung durch Warten auf DB-Zugriffe oder aufwenige Berechnung blockiert also einen Thread für längere Zeit. Dies ist der Grund
        das man meist zwischen 150-500 Threads für einen Connector konfiguiert.

        Pete

        Comment

        Working...
        X