使用wsadmin脚本抓一下javacore,查看是否有blocked/deadlock/waiting on condition状态的线程,如果有,可以分析一下相关线程的堆栈信息。同时查看一下stack depth直校大的线程,就可以抓取出对应的内容并优化。
收起1、打开GC日志,看看CPU高的时间段,GC是否频繁
2、如果频繁基本可以定位是GC导致的,可能的原因是存在JVM泄露、JVM申请频繁、JVM设置偏小等,需要具体看
3、如果不频繁,GC正常,则应该是应用线程占用的CPU高。可以使用微软的 Process Explore工具,在cpu高的时候生成几个javacore,并记录下 Process Explore上占用CPU高的线程号,两个的时间尽量保持一致
4、根据线程号和javacore,找到占用cpu高的线程堆栈,可能需要多收集几次,有时对“同时”的要求比较高