由于公司扩展海外业务,开放了日本、韩国市场,服务器也就部署在日本。但是最近却出现频繁应用挂掉、CPU动不动就飙升到100%的问题,只能让运维重启服务器。问题还是需要根治。
1、首先,一般是操作人员发现,系统无法登录、操作任何菜单,点击界面跟后端交互的接口一直毫无响应。这时,我们在服务器查看,使用命令:top ,发现一个java进程一直处于100%;
2、第二步,本来按照问题查找的一般过程,我们接下来是需要通过top -Hp <pid>
命令查看当前进程的各个线程运行情况,找出CPU过高的线程之后,将其线程id转换为十六进制的表现形式,然后在jstack日志中查看该线程主要在进行的工作。但是问题在于cpu已经100% 了,操作命令效率极低,况且用户就是上帝 ,他们不会给你这么多时间去排查问题,需要尽快重启系统。这里,采用命令
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/path/heap/dump
将dump日志输出到指定文件夹内,然后在使用工具对 对象数量,内存占用,线程情况等进行分析查看。
3、经过上面的操作,我们已经完成了日志文件的记录。但是问题又来了,服务器不方便对日志进行直接分析,需要下载到本地,而服务器部署在国外 ,文件大小超过5个G
使用服务器动不动就下