前景提要
centos下,tomcat7关闭后报错内存泄露,并开启多个java进程,不知怎么处理
0 悬赏园豆: 100 [待解决问题] 每次发布项目的时候,tomcat执行shutdown.sh之后,都会打印以下日志,
并且会在linux中开启几个java进程,占了很多内存,找了很久的原因,都不知道怎么处理,希望大佬帮忙解答一下。
四月 02, 2019 1:48:34 下午 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["http-bio-80"]
四月 02, 2019 1:48:34 下午 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["ajp-bio-8009"]
四月 02, 2019 1:48:35 下午 org.apache.catalina.core.StandardService stopInternal
信息: Stopping service Catalina
四月 02, 2019 1:48:35 下午 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
严重: The web application [/ShiJie] appears to have started a thread named [pool-1-thread-1] but has failed to stop it. This is very likely to create a memory leak.
四月 02, 2019 1:48:35 下午 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
严重: The web application [/ShiJie] appears to have started a thread named [pool-2-thread-1] but has failed to stop it. This is very likely to create a memory leak.
四月 02, 2019 1:48:35 下午 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
严重: The web application [/ShiJie] appears to have started a thread named [I/O dispatcher 1] but has failed to stop it. This is very likely to create a memory leak.
四月 02, 2019 1:48:35 下午 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
严重: The web application [/ShiJie] appears to have started a thread named [I/O dispatcher 2] but has failed to stop it. This is very likely to create a memory leak.
四月 02, 2019 1:48:35 下午 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads JAVA tomcat centos linux 神猴大叔 | 初学一级 | 园豆: 102
提问于:2019-04-02 14:15 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题
所有回答(2) 0 jmap、jstack、jstat工具用法了解下 ycyzharry | 园豆:20892 (高人七级) | 2019-04-02 21:29 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 你怎么开了多个进程,ps查看的? 一般showdown.sh会使用single通知关闭,会触发定义的钩子函数 ShutdownHook定义的逻辑,会做一些释放资源的工作.
打个比方: 一个web服务当前正在运行,你是执行完当前用户请求关闭服务,还是直接强制关闭(导致逻辑执行一般出现事务或数据操作一致性问题)。 cat_with_mouse | 园豆:202 (菜鸟二级) | 2019-04-05 12:26 你可以看下shutdown,sh 逻辑基本在 catalina.sh 中实现 ,具体的逻辑下图,试例: tomcat7的版本
kill -15 内核通过 single 通知应用关闭,会触犯 tomcat 的添加的CloseHook释放资源。
具体释放逻辑就要看源码了,也不难,搜索:Runtime.getRuntime().addShutdownHook( {logic} )
查看执行的 logic 就好了
很久没用tomcat了... 支持( 0 ) 反对( 0 ) cat_with_mouse | 园豆:202 (菜鸟二级) | 2019-04-05 12:51 编辑文本 预览 上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。