`

综合运用工具监视和排查tomcat应用问题

 
阅读更多

tomcat经常碰到偶尔无法正常响应甚至宕机重起后恢复的情况,此情况该如何监视和排查呢

总结思路如下。

[@more@]


1 远程监控法

利用某些网站提供的免费检测网站功能,对tomcat应用进行长期自动检测,观察问题出现的频率,为排查问题搜集数据。

推荐用www.jiankongbao.com

提供了比较强大的监控功能,特别是服务器监控功能比较强大。此类网站国外还有很多,需要搜索。

2 本地监控法

在web服务器上 windows 利用系统自带的性能监视器perfmon进行监控;微软的process monitor也是一个很好的监控工具。

分析;linux和unix 推荐用nmon进行整体监控

通常长期数据分析,看看cpu,io,网络,内存4个主要资源的情况 其中哪个达到了瓶颈,特别要注意看曲线分布,是否存在有规律性的突变?

比如明显在每天的某一个高峰时间出现瓶颈?

使用netstat ,微软的portqry等工具监测web和db的连接池的稳定性,如出现反复的close和established的状态切换,可能是连接池实现有问题,或应用实现可能有问题不断误杀。

一个典型常见的错误就是部署了相同的多个应用互相误杀。

本地监控的另外一个有用的方法就是采用科来进行网络分析tcp链接,重连次数自动诊断,http响应分析等等

这一个步骤主要要确认瓶颈是在web服务器本身的资源上还是后台的数据库上。

3 如确认瓶颈在web服务器上,

可采用yahoo提供的yslow工具,对web的页面组件进行下载时间分析,看看主要是哪些组件下载慢? 看下web前端页面设计是否需要优化?

4 如果yslow下载速度比较快,问题仍然不能定位,问题是偶发的,也不好用yslow一直测试

可使用Lambda Probe 进行tomcat的监控 详细内容参考http://www.lambdaprobe.org/d/index.htm

特别要注意监视java内存的泄漏,线程数量的不断增长,http链接请求是否不断增长超过预期的能力。java内存的泄漏需要用专门的工具检测代码。

可使用jprofile 等剖析工具分析哪些线程,以及具体哪些函数占用cpu比较高,然后进行针对性的优化。

一个典型的案例就是后台采用sybase数据库时,由于sybase没有类似oralce的rownum机制,无法直接在数据库翻页,在java中翻页数量比较多的时候容易出现java内存 撑满(memory out)。

5 一旦cpu高问题发生,可先不重启web

可采用windbg进行绑定分析 参考如下实例

http://www.cnblogs.com/longyu/archive/2009/06/21/1507250.html

6 web 日志分析,使用AWStats之类的日志分析工具,对网站进行整体分析

参考http://www.chedong.com/tech/awstats.html

7 使用httpwatch等工具,定位瓶颈页面

参考http://www.httpwatch.com/download/

8 要注意检查tomcat配置文件是否被修改过,比如xml文件的配置不符合规范,可采用debug模式启动tomcat

以获取更多的日志分析。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics