(本文档仅供参考)
1、web端突然无法正常使用,查看后台没有了进程。
2、打印的线程通常间隔10分钟打印,线程文件夹中看到某个时间没有打印线程,此时大概率是没有进程。
没有进程通常是JDK崩溃或是应用服务器存在bug,故以下主要针对JDK崩溃导致提供相关解决方案。
原因一:根据以往经验缺少X11参数,比较大可能会导致JDK崩溃,使得进程没了。
解决方案:添加 -Djava.awt.headless=true 参数,避免因缺少改参数导致JVM崩溃。参数添加可以参考wiki文档:应用服务器JVM参数配置。
注:此原因导致JDK崩溃,一般不会生成"hs_err_pidxxxx.log"的文件。
通过应用服务器bin目录下名称是"hs_err_pidxxxx.log"的文件(一般JVM崩溃应用服务器会自动生成文件)进一步分析问题原因,以下为两个遇到过的示例:
报错:
# Possible reasons: # The system is out of physical RAM or swap space # In 32 bit mode, the process size limit was hit |
原因二:内存设置的最大值(xmx)大于服务器物理内存空闲的值,此时JDK无法正常使用,则出现崩溃情况。
解决方案:建议增大服务器物理内存;若实在无法增加服务器内存,可减少xmx值,但该值建议是配置16G及以上,关于系统环境配置可以参考wiki文档:系统环境要求。
报错:
# Problematic frame: # C [libtcnative-1.so.0.2.16+0x15d4b] Java_org_apache_tomcat_jni_Socket_sendbb+0x1b |
原因三:libtcnative-1.so 文件存在bug,使得JDK崩溃,从而导致进程退出
解决方案:建议更新libtcnative-1.so文件,若更新文件无效,建议从tomcat应用服务器中移除该文件。(此文件存放于tomcat应用服务器bin目录下)