web应用部署到Linux服务器上,CPU占用过高
公司项目部署到LINUX服务器上后,过了一段时间,CPU过高,开始寻找原因
有这么几步:
1.通过top命令(top之后再按shift+H可以显示线程)查看CPU使用率高的线程;
2.将这个线程号转换为16进制;
3.使用jps查看服务器的Java进程号;
4.使用jstack [进程号] 打印当前的进程堆栈;
5.从打印的信息中,找到第2步得到的线程号,看看这个线程在做什么。
不一定一次就能抓准线程状态,可以第1步时多记几个线程。
最后发现是代码中有外部远程调用,造成了线程死锁。