2017-11-30 4 views
0

Wir haben den IBM HTTP Server vor unserem App Server. Wir laufen etwa 50 gleichzeitige Anfrage während Belastungstests. Aber wir bekommen Fehler und sind nicht in der Lage, 50 gleichzeitige Anfrage auszuführen. Der Server wird erfolgreich für 40 gleichzeitige Anforderungen ausgeführt. Die Speicher- und CPU-Auslastung hat nicht ihren Höhepunkt erreicht, es gibt genügend Ressourcen, um Anfragen zu bearbeiten. Aber können wir keine Anfrage im App-Server-Protokoll finden. Aber in Plugin-Logs können wir die Anfrage sehen. Die folgenden sind die Konfigurationen.Wie viele gleichzeitige Anfragen verarbeitet der Websphere Application Server (WAS 8.0)?

Von IBM Website, ich weiß, IHS-Server wird in der Lage sein, 600 gleichzeitige Anfrage standardmäßig zu verarbeiten und es gibt 50 Threads in App Server standardmäßig zu verarbeiten.

Aus den Logs gesehen, in Plugin, ich folge, dass die Anfragen vom ihs Server verarbeitet werden, aber die Threads in App Server (50 standardmäßig) ist nicht genug, um 50 gleichzeitige Anfrage zu verarbeiten. Gibt es eine Eins-zu-eins-Zuordnung zwischen den Threads und der gleichzeitigen Anforderung? Müssen wir die maximalen Threads erhöhen? Was sind die Parameter, die die gleichzeitige Verarbeitung von Anforderungen in Bezug auf IHS, Websphere Applikationsserver und das Plugin conf zu erhöhen, um die gleichzeitige Anfrage Handhabung des Websphere 8.0

httpd.conf zu erhöhen geändert werden müssen: # -Windows MPM Thread 2048 ThreadsPerChild 250 MaxRequestsPerChild 0

plugin.conf

<ServerCluster CloneSeparatorChange="false" GetDWLMTable="false" IgnoreAffinityRequests="true" LoadBalance="Round Robin" Name="xxxx" PostBufferSize="64" PostSizeLimit="-1" RemoveSpecialHeaders="true" RetryInterval="60" ServerIOTimeoutRetry="-1"> 
     <Server ConnectTimeout="0" ExtendedHandshake="false" MaxConnections="-1" Name="xxxx" ServerIOTimeout="900" WaitForContinue="false"> 
     <Transport Hostname="SA16" Port="9080" Protocol="http"/> 
      </Server> 
    </ServerCluster> 

WebContainer Einstellungen im App-Server (Anwendungsserver> server1> Thread-Pools> WebContainer) Mindest Gewinde - 50 Maximale Gewinde - 50

Antwort

1

Sie 50 Themen Web-Container haben, so Sie können ungefähr 50 Threads in synchronen Anwendungscode verarbeiten, die HTTP-Anforderungen verarbeiten - es sei denn, Sie programmieren gegen asynchrone Servlet-APIs und verwenden "andere" Threads (z. B. eine der Executor-APIs oder asynch-bohnen-API).

Es sollte trivial sein, Ihren Auslastungstest zu starten, dann den Leistungsmonitor in der WAS-Konsole anzuschauen oder noch einfacher die Thread-Aktivität in einem Javacore von einem kill -3 auf der Anwendungsserver-JVM zu betrachten.

Es scheint nicht so, als ob Sie mehr Skalierung in der WebServer-Ebene benötigen. Bei dieser Stufe ist die beste Überwachung, die IHS proprietär ist, die Ausgabe von mod_mpmstats, die Ihnen Ihre Webserver Thread-Nutzung mitteilt.

+0

Von mpmstats scheint es gibt kein Problem mit Webserver, da es mehr als 300 Threads im Bereitschaftszustand gibt. In einigen Fällen finde ich, obwohl es genug Threads im Bereitschaftszustand gibt, sind 55 im beschäftigten Zustand, wo es 54 im wr-Zustand und 1 im ka-Zustand zeigt. In der folgenden Beschreibung bezieht sich wr auf "die Anzahl der ausgelasteten Webserver-Threads, die die Anfrage vom Client gelesen haben, aber die Anfrage entweder bearbeiten (z. B. auf eine Antwort von WebSphere Application Server warten) oder die Antwort zurückschreiben Client "könnte es bedeuten, dass alle verfügbaren 50 App-Server-Threads verwendet werden. – Siva

Verwandte Themen