Tomcat 8使用deployWAR缓慢启动

Rav*_*uid 7 performance tomcat

我从Tomcat 7.0.54升级到8.0.15,将openSSL升级到1.0.1k,使用APR 1.5.1将tcnative升级到最新的1.1.32.

但是,Tomcat现在比以前慢了大约2到3倍.最值得注意的是,部署WAR文件需要更长的时间.

雄猫7

Jan 20, 2015 3:39:36 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deployment of web application archive <PATH>\file.war has finished in 433 ms
Run Code Online (Sandbox Code Playgroud)

雄猫8

Jan 21, 2015 2:27:01 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deployment of web application archive <PATH>\file.war has finished in 4,310 ms
Run Code Online (Sandbox Code Playgroud)

所有WAR文件都会发生这种情况,所有这些都是从毫秒到大约5秒.

我从server.xml中删除了JasperListener,因为它似乎已被删除.

unpackWARs="false"
autoDeploy="true"
Run Code Online (Sandbox Code Playgroud)

如果设置为true(至少不显着),unpackWars没有区别.我认为它可能是8.0.17中修复的注释扫描问题,但没有运气.

我注意到catalina.properties中的jarsToSkip已经改变了

tomcat.util.scan.DefaultJarScanner.jarsToSkip to
tomcat.util.scan.StandardJarScanFilter.jarsToSkip
Run Code Online (Sandbox Code Playgroud)

并删除了org.apache.catalina.startup.TldConfig.jarsToSkip并转到context.xml

<JarScanner>
    <JarScanFilter tldSkip="websocket-api.jar,tomcat-websocket.jar"/>
</JarScanner>
Run Code Online (Sandbox Code Playgroud)

然而,这似乎都没有让我回到tomcat 7的性能.这样做的一个动作是删除websocket jar.但是我们需要它们.这让我得出的结论是,它们仍然被扫描,即使它们应该被跳过.

我错过了什么吗?context.xml是否与catalina.properties jarsToSkip不同?

mis*_*rti 9

对我来说,慢速启动的解决方案是放入conf/context.xml:

<Context>
    <JarScanner>
        <JarScanFilter defaultPluggabilityScan="false" />
    </JarScanner>
</Context> 
Run Code Online (Sandbox Code Playgroud)

资料来源:https://groups.google.com/a/apereo.org/forum/#!topic/sakai- dev/ cjtYGxd6hG0


Fra*_*ano 1

我这里也有类似的问题。

改善启动时间的一种选择是添加:

metadata-complete="true"
Run Code Online (Sandbox Code Playgroud)

到 web.xml (webapp 元素),如https://cwiki.apache.org/confluence/display/TOMCAT/HowTo+FasterStartUp中的建议。这假设您的 web.xml 就是您的网络应用程序启动所需的全部内容。

它并没有完全解决我的问题,但启动速度的提高是巨大的。