tomcat+java的web程序持续占cpu问题调试
2016-04-07 14:31
761 查看
原文出处:http://www.blogjava.net/hankchen
现象:
在tomcat中部署java的web应用程序,过一段时间后出现tomcat的java进程持续占用cpu高达100%,导致web程序访问受阻。
可能原因分析:
可能程序确实在进行数据计算;或程序进入死循环;
解决方法:
1、先用top查看占用cpu的进程id
2、再用ps -ef | grep PID定位具体的进程主体;如是否是tomcat启动的java程序
3、用ps -mp
pid -o THREAD,tid,time打印出该进程下的线程占用cpu情况
找到了耗时最高的线程28802,占用CPU时间快两个小时了!
4、其次将需要的线程ID转换为16进制格式:
printf "%x\n" tid
5、最后打印线程的堆栈信息:
jstack pid |grep tid -A 30
找到出现问题的代码,并分析具体函数中是否有可能出现死循环的代码段。
通常问题出现在while, for之类的循环代码片段。
现象:
在tomcat中部署java的web应用程序,过一段时间后出现tomcat的java进程持续占用cpu高达100%,导致web程序访问受阻。
可能原因分析:
可能程序确实在进行数据计算;或程序进入死循环;
解决方法:
1、先用top查看占用cpu的进程id
2、再用ps -ef | grep PID定位具体的进程主体;如是否是tomcat启动的java程序
3、用ps -mp
pid -o THREAD,tid,time打印出该进程下的线程占用cpu情况
找到了耗时最高的线程28802,占用CPU时间快两个小时了!
4、其次将需要的线程ID转换为16进制格式:
printf "%x\n" tid
5、最后打印线程的堆栈信息:
jstack pid |grep tid -A 30
找到出现问题的代码,并分析具体函数中是否有可能出现死循环的代码段。
通常问题出现在while, for之类的循环代码片段。
相关文章推荐
- Tomcat指定jdk的安装配置-Linux
- Tomcat和Apache集群和负载均衡配置。
- window下tomcat内存溢出配置及查看
- zabbix 监控 tomcat jmx
- tomcat 中配置 access log
- Tomcat部署项目去除项目名和端口号通过IP地址(或域名)访问
- tomcat和apache关系总结
- tomcat server需要重启的时刻
- Tomcat上java.lang.IllegalStateException: Optional int parameter 'id' is not present
- solr4.5部署到tomcat
- web容器和tomcat和servlet关系总结
- tomcat域名配置
- Spring JMS 整合Tomcat和ActiveMQ
- Tomcat中监控JVM内存使用情况
- tomcat
- tomcat修改默认编码格式
- 设置Tomcat的UTF-8编码
- 【转】MyEclipse8.5集成Tomcat7时的启动错误:Exception in thread “main” java.lang.NoClassDefFoundError org/apache/commons/logging/LogFactory
- Tomcat与jdk在Linux上的安装与配置
- 设置Tomcat内存