当eas的java进程消耗cpu高,甚至100%了怎么办?
金蝶云社区-马瑞琪
马瑞琪
0人赞赏了该文章 2,681次浏览 未经作者许可,禁止转载编辑于2017年03月02日 09:54:39

EAS在运行的过程中,性能问题一直是持续需要关注的问题,eas的进程我们都是知道是JAVA进程,当eas的java进程我们发现在linux的TOP命令界面,或是windows的任务管理器界面,消耗cpu资源很高,遇到这样的问题如何有效的收集信息,就是本帖子要讲解的内容。
首先,需要找到java进程的进程号PID
当你遇到eas的java进程cpu消耗很高的时候,你首先要找到这个java进程的系统进程号,也就是PID。在windows的任务管理器里面,点击查看->选择列-->如下图所示,选中PID(进程标识符)即可找到进程号,那么就可以找到这个java进程的PID了。

如果是Linux环境,直接在top命令界面就可以看到进程号了。

其次:找到该PID对应的eas的server
一般在独立的EAS服务器上,java进程就只可能是EAS的进程,那么为了确认该pid是否就是eas的server,可以在EAS的管理控制台上查看:

上图就可以看出server的进程号就是14722.
如果遇到是eas的集群环境,也是同样的方法,需要找到是哪个server消耗cpu资源过高,一般集群最少3个server,此时就需要明确哪个server占用比较高。

最后:确认了上述两个问题之后,就需要在cpu高的时间段,收集有效的日志,进一步提交到金蝶总部分析问题。
有的人往往在cpu高的故障点之后才提交问题,而又没有收集到有效的日志,这对我们诊断问题带来难度,因为只有在故障点才抓到cpu高的原因,事后故障都不见了,就很难抓到问题根源了。

需要收集的日志信息:-----cpu故障时段收集 ------

1.对EAS的java进程cpu高的地方截图保存证据。

2.服务端堆栈信息
参考《收集客户端和服务端线程堆栈》

下载地址:ftp://ftpdev.kingdee.com/工具/性能部署/收集客户端和服务端线程堆栈.doc(用户名/密码:usersupport/usersupport2007)(看帖子回帖不用下载文档)

3.收集服务器eassupport日志
服务器端eas/server/bin下执行eassupport.bat(Windows)或easssupport.sh(Linux/Unix)文件,会在当前路径下生成一个以support打头的文件。注意:在cpu高的时候,收集support,会自动一起收集了线程堆栈。所以尽量在cpu高的时候收集support

4.收集JVM日志
\eas\profiles\server1\logs 下面jvm开头的就是。