我的tomcat需要很多时间在服务器中部署我的项目,如果只关闭并启动我的项目需要5分钟,但如果我更改war文件,则需要近30分钟来部署和运行我的项目,
我在catalina.out中看到了这个警告,是否与我的tomcat工作缓慢有关?
LocalDateTime
我将我的war文件放在webapps文件夹中,然后使用Apache8-0-45
我的tomcat出了什么问题?怎么能让我的tomcat更快? 我该如何修复这个内存泄漏?
ps:昨天当我搜索时,我在网上看到我应该把这行放在context.xml中,我做了。它让它好一点,至少我猜!
WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [proj] appears to have started a thread named [DefaultQuartzScheduler_Worker-2] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
ps2:我使用tomcat和server都是新手:|
ps3:我认为这是[link]并测试它,我认为这不是代理问题。
ps4:项目很大,有很多疑问,所以我不能把它们带到这里!不幸的是:/
编辑:此日志位于catalina.2017-08-26.log
<Resources cachingAllowed="true" cacheMaxSize="100000" />
答案 0 :(得分:0)
我的tomcat出现了什么问题?
这是你的申请。
如何让我的tomcat更快?
您的日志文件中已经有一些提示:
INFO [localhost-startStop-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.
你有多少个JAR文件?如果你有大量的JAR文件和/或有大型JAR文件,那么Tomcat可能需要花费很长时间来扫描它们以获取注释,servlet初始化器等。如果你不使用任何这些东西,你可以{{3} }(scanClassPath="false"
),如果您知道某些(特别是大型)JAR没有值得扫描的东西,那么您可以disable JAR scanning entirely。
此外:
WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [project3] appears to have started a thread named [DefaultQuartzScheduler_Worker-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
如果重新启动应用程序而不重新启动Tomcat,那些线程可能会继续存在。经过几次重新加载后,你有许多线程只是在你的CPU上运行(可能......这取决于这些线程是否实际唤醒并在重新部署后完成一些有用的东西)。
如何修复此内存泄漏?
确保在应用程序关闭时干净地关闭Quartz。