一、对外表现
1.应用访问速度慢、应用报错(WAS性能差)
2.应用(server)停止对外服务无法访问(WAS服务挂起或者服务器宕机)
二、xxx系统我们发现过的问题
1.WAS内存处理大对象内存分配bug(大报文(20M)-小报文(20M)-20M)
2.内存回收碎片(java heap free memory很多,一个很小的报文都申请不到内存)
3.WAS MDB侦听MQ队列问题
三、排查思路
思路:
1.查看收集服务器性能指标,内存使用、CPU使用包括磁盘I/O等。
2.查看收集操作系统级日志。
3.根据服务器的性能指标以及操作系统级日志,基本定位是否存在影响性能的瓶颈,通过排除那些不是导致问题发生的因素,以缩小问题的范围,可以使问题简单化,并且避免浪费时间。举例:
CPU使用不高,用户感觉交易响应时间很长,可以断定是由于系统的某一小部分造成了瓶颈,导致了所有的请求都在等待。我们可以考虑,线程池的数量开的太小,导致所有的请求都在排队等待进入线程池,因为没有可用的线程使用,所以这个交易请求一直在排队,导致交易响应时间很长。数据库连接池开的太小,也会有同样的表现。
CPU使用很高,用户感觉交易响应时间很长,比较复杂。可能的根源之一是硬件资源不够。 根源之二是应用系统中产生了多个大对象。根源之三是程序算法有问题。 解决思路如下:用性能分析器, 对运行环境进行分析,分析哪个类甚至于哪个函数消耗了这么多的CPU,并找到相应的解决方案。
4.收集分析WAS日志
当应用服务器发生挂起、或者发生out-of-memory等现