使用arthas诊断高CPU实例1
背景
有个客户,项目上报他们家的测试环境很卡,于是介入处理。
环境
weblogic + Windows部署老产品
步骤
首先,连续点击老产品,CPU确实飚满,当访问页面返回后,CPU使用释放,恢复正常。
其次,由于CPU瞬间飚高,选择arthas来处理,attach进程:
##启动
java -jar arthas-boot.jar
##选择需要attash的java进程pid,Windows环境通常有如下几种方式
1、一种情况 任务管理器进程TAB页,字段头区域 有PID,√上;
2、另一种情况 任务管理器菜单栏中找下显示字段 PID,√上;
3、cmd命令行执行 jps -lmv
第三、使用“ thread -n 3 ”查看排名靠前的CPU占用:
- 首先,每次servlet请求weblogic classloader会看查看class文件是否有变更,有则重新加载,这是weblogic 热机制;
- 其次,首次访问JSP,weblogic classloader会进行jsp文件资源加载;
3.第三,ibatis框架加载xml时也会用weblogic classloader加载资源;
原因
本windows服务器是虚拟机,分配的CPU极低,导致不经用,连续2、3个请求CPU能蹦高到100%。
调优
当调整生产模式后,上述第1条问题不存在,CPU使用明显降低,调整如下
综上,CPU不合理部分问题与weblogic不正当设置、资源加载有关,不涉及业务代码。