Tomcat 在 Unix 伺服器上部署緩慢

Tomcat 在 Unix 伺服器上部署緩慢

最近,我們的應用程式從 WebSphere 遷移到 Tomcat。

我們使用的是:JDK 1.8 Build 191 和 Tomcat 9.0.50。大多數應用程式是 Servlet/JSP 和一些帶有 Spring MVC 的 Web 應用程式的混合,它確實使用了一些多線程

現在我們的測試伺服器部署得非常好。它非常活潑。但當在生產環境中部署 Tomcat 時,它就突然停止了。

例如,這是測試伺服器的輸出:

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

這是生產中的同一個 Web 應用程式:

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

我在 setenv.sh 檔案中設定了這個:

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"

我已經配置了我的 server.xml:

<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" />

標籤Engine如下:

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

更不用說,應用程式在上面運行也非常慢!與在 WebSphere 上執行時相比,現在頁面載入時間增加了約 200-300%。我在這裡錯過了什麼嗎?對此的一些幫助將非常感激。謝謝!

相關內容