Tomcat-Bereitstellung auf Unix-Servern langsam

Tomcat-Bereitstellung auf Unix-Servern langsam

Wir sind für unsere Anwendung vor Kurzem von WebSphere zu Tomcat gewechselt.

Wir verwenden: JDK 1.8 Build 191 und Tomcat 9.0.50. Der Großteil der Anwendung ist eine Mischung aus Servlet/JSP und einigen Webanwendungen mit Spring MVC. Es wird etwas Multithreading verwendet.

Jetzt läuft die Bereitstellung auf unseren Testservern einwandfrei. Sie läuft ziemlich flott. Aber bei der Bereitstellung auf Tomcat in der Produktion kommt sie einfach abrupt zum Stillstand.

Dies ist beispielsweise eine Ausgabe vom Testserver:

26-Aug-2021 08:56:11.585 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/opt/app/tomcat/webapps/cdsrs.war]
26-Aug-2021 08:56:13.750 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
26-Aug-2021 08:56:14.091 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/app/tomcat/webapps/cdsrs.war] has finished in [2,505] ms

Und dies ist dieselbe Webanwendung in der Produktion:

26-Aug-2021 09:26:18.016 INFO [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/app/tomcat/webapps/cdsrs]
26-Aug-2021 09:26:19.870 INFO [Catalina-utility-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
26-Aug-2021 09:28:52.569 INFO [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/app/tomcat/webapps/cdsrs] has finished in [154,553] ms

Ich habe dies in der Datei setenv.sh eingestellt:

export CATALINA_OPTS="$CATALINA_OPTS -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC -Xloggc:gc/gc.log"
export CATALINA_OPTS="$CATALINA_OPTS -Xms3072M"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx8192M"
export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=3072M"

Und ich habe meine server.xml wie folgt konfiguriert:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxHttpHeaderSize="65536" maxThreads="150" SSLEnabled="true" acceptorThreadCount="4" >
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/keystore.jks" certificateKeystorePassword="some_password" type="RSA" />
    </SSLHostConfig>
</Connector>
<Connector address="SERVER_HOSTNAME" port="8080" protocol="HTTP/1.1" maxHttpHeaderSize="65536" connectionTimeout="20000" redirectPort="8443" acceptorThreadCount="4" />

Und der EngineTag so:

<Engine name="Catalina" defaultHost="localhost" startStopThreads="0">

Ganz zu schweigen davon, dass die App darauf auch sehr langsam läuft! Die Seitenladezeiten sind jetzt um etwa 200-300 % höher als damals, als sie auf WebSphere lief. Übersehe ich hier etwas? Für Hilfe wäre ich sehr dankbar. Danke!

verwandte Informationen