在分析过程中需要重点关注的线程有:
·死锁,Deadlock:死锁线程,一般指多个线程调用间,进入相互资源占用,导致一直等待无法释放的情况。
·执行中,Runnable:一般指该线程正在执行状态中,该线程占用了资源,正在处理某个请求,有可能正在传递 SQL 到数据库执行,有可能在对某个文件操作,有可能进行数据类型等转换。
·等待资源,Waiting on condition:如果堆栈信息明确是应用代码,则证明该线程正在等待资源,一般是大量读取某资源,且该资源采用了资源锁的情况下,线程进入等待状态,等待资源的读取。又或者,正在等待其他线程的执行等。
·阻塞,Blocked:是指当前线程执行过程中,所需要的资源长时间等待却一直未能获取到,被容器的线程管理器标识为阻塞状态,可以理解为等待资源超时的线程。这种情况在 was 的日志中,一般可以看到 CPU 饥渴,或者某线程已执行了 XX 秒的信息。
经过一段时间的项目联机性能测试实践,测试人员对内存泄漏查找定位、GC 曲线图加深了理解,对 WAS 内存泄漏分析有了一定的测试经验。在后续的工作中,我们将继续不断回顾总结,持续提升测试人员测试技能,增强信息安全意识,多筹并举保障持续提升系统稳定性。