Ich habe eine JSP-Webanwendung auf IIS 7.5 & Tomcat 8.0.30 über BonCode AJP13 v1.0.26 auf Win 2008 R2 64 Bit gehostet.BonCode Connector, IIS 7.5 & Tomcat 8, langsame und intermittierende Anfrage Timeout-Fehler
Dies funktioniert seit ein paar Monaten in Ordnung.
Wir haben identische Umgebungen: Entwicklung, Staging & Produktion.
auf der Entwicklung und Staging-Umgebungen, plötzlich, wir bekommen sehr langsame Antworten und in einigen Fällen intermittierende IIS erzeugen Timeout-Fehler:
Request timed out
Exception Details: System.Web.HttpException: Request timed out.
[HttpException (0x80004005): Request timed out.]
Auf der Produktionsumgebung, Leistung scheint OK.
Versuchte Wieder Booten Server, IIS neu zu starten, neu zu starten Tomcat etc
Hat jemand hatte diese Verlangsamungen?
Verwendet jemand eine bekannte Arbeitsversion von BonCode größer als 1.0.26?
Einzelheiten
Umgehen IIS & BonCode, dh explicity Auswahl Port 8080, eine sofortige Antwort gibt.
http://<domain>:8080/<path>
Die Verlangsamung ist nicht JSP-spezifisch. Sogar sehr einfache Seiten, zB Datum & Zeit, gibt immer noch zeitweise langsame Antworten.
Es gibt keine Authentifizierung in der Tomcat/JSP Web-App.
Eine einzelne Instanz von Tomcat auf demselben Server befindet als 7,5 usw. dh keine Ausgleichslast-IIS
Nur Normal HTTP ist dh HTTPS nicht und keine zugehörigen Zertifikate verwendet werden.
Server Diagnose
- BonCode logs
Gelegentlich gesehen wird:
2016-02-29 15:59:01 1.0.26 ERROR
TCP Client level -- Server/Port:localhost/8009
Value cannot be null.
Parameter name: buffer
2016-02-29 15:59:01 One Connection raised an error
aber in der Regel keine verwandten Fehler/Warnungen angezeigt werden
Vergleichen mit älteren Protokolle
Old log
2017-05-04 10:19:28 New Connection 46 of 0 to tomcat: 127.0.0.1:8009 ID: 46 [T-5]
2017-05-04 10:19:35 New Connection 47 of 0 to tomcat: 127.0.0.1:8009 ID: 47 [T-45]
2017-05-04 10:25:11 New Connection 48 of 0 to tomcat: 127.0.0.1:8009 ID: 48 [T-45]
2017-05-04 10:25:15 New Connection 49 of 0 to tomcat: 127.0.0.1:8009 ID: 49 [T-49]
2017-05-04 10:39:12 New Connection 50 of 0 to tomcat: 127.0.0.1:8009 ID: 50 [T-49]
2017-05-04 10:40:09 New Connection 51 of 0 to tomcat: 127.0.0.1:8009 ID: 51 [T-22]
2017-05-04 10:41:29 New Connection 52 of 0 to tomcat: 127.0.0.1:8009 ID: 52 [T-49]
2017-05-04 10:42:03 New Connection 53 of 0 to tomcat: 127.0.0.1:8009 ID: 53 [T-52]
2017-05-04 11:05:04 New Connection 1 of 0 to tomcat: 127.0.0.1:8009 ID: 1 [T-20]
2017-05-04 11:06:37 New Connection 2 of 0 to tomcat: 127.0.0.1:8009 ID: 2 [T-23]
2017-05-04 11:07:23 New Connection 3 of 0 to tomcat: 127.0.0.1:8009 ID: 3 [T-51]
2017-05-04 11:08:55 New Connection 4 of 0 to tomcat: 127.0.0.1:8009 ID: 4 [T-23]
2017-05-04 11:09:17 New Connection 5 of 0 to tomcat: 127.0.0.1:8009 ID: 5 [T-51]
New log
2017-05-16 14:31:57 New Connection 200 of 0 to tomcat: 127.0.0.1:8009 ID: 200 [T-153]
2017-05-16 14:31:58 New Connection 201 of 0 to tomcat: 127.0.0.1:8009 ID: 201 [T-153]
2017-05-16 14:32:30 New Connection 202 of 0 to tomcat: 127.0.0.1:8009 ID: 202 [T-153]
2017-05-16 14:36:05 New Connection 204 of 0 to tomcat: 127.0.0.1:8009 ID: 204 [T-153]
2017-05-16 14:36:06 New Connection 205 of 0 to tomcat: 127.0.0.1:8009 ID: 205 [T-153]
2017-05-16 14:41:38 New Connection 206 of 0 to tomcat: 127.0.0.1:8009 ID: 206 [T-153]
2017-05-16 14:42:51 New Connection 207 of 0 to tomcat: 127.0.0.1:8009 ID: 207 [T-153]
2017-05-16 14:42:52 New Connection 208 of 0 to tomcat: 127.0.0.1:8009 ID: 208 [T-153]
2017-05-16 14:43:12 New Connection 209 of 0 to tomcat: 127.0.0.1:8009 ID: 209 [T-153]
2017-05-16 14:43:40 New Connection 210 of 0 to tomcat: 127.0.0.1:8009 ID: 210 [T-153]
Im alten log, die Verbindungs-IDs scheinen nach ~ 20-80 mit jeder Verbindung zurückgesetzt werden eine Reihe von Threads, gelegentlich der gleiche Thread.
Im neuen Protokoll, mit der Verlangsamung, sind die Verbindungs-IDs viel höher und scheinen den gleichen Thread zu verwenden.
- Tomcat logs
keine Fehler, wie erwartet Servlet/JSP Anfragen weitergeleitet werden, nicht zu werden.
Konfigurationsdateien
BonCode - BonCodeAJP13.settings
<Settings>
<Port>8009</Port>
<Server>localhost</Server>
<MaxConnections>0</MaxConnections>
<LogLevel>2</LogLevel>
<LogDir>E:\inetpub\logs\BonCode</LogDir>
<FlushThreshold>0</FlushThreshold>
<EnableRemoteAdmin>False</EnableRemoteAdmin>
<HeaderBlacklist>AUTHORIZATION,URL,SERVER_SOFTWARE,SERVER_NAME,SERVER_PROTOCOL</HeaderBlacklist>
<PacketSize>65536</PacketSize>
</Settings>
Tomcat - server.xml
...
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
packetSize="65536" />
...
Hinweise
I Ich bin mir bewusst, dass BonCode v1.0.26 jetzt auf v1.0.36 aktualisiert wurde, aber die neuere Version ist erst seit etwa 10 Tagen verfügbar.
Wenn ich nirgendwohin komme, werde ich upgraden, aber es gibt Grenzen, was ich in der Produktionsumgebung tun kann.
Dank Brian geschieht, für Tomcat, wenn maxThreads nicht angegeben ist, wird standardmäßig auf 200. Eine Einstellung von 1000 für diese zu hoch scheint - das ist ein wenig Traffic-Website .Auch diese Tomcat-Änderung benötigt eine entsprechende BonCode-Änderung als BonCode MaxConnections = Tomcat maxThreads. Wie Sie sagen, wird eine Grenze erreicht - ich werde dies als Antwort akzeptieren. –