开发中经常有CPU尖刺报警,本文简单介绍一种定位cpu飙升问题的方法。
Linux环境上,输入 top 命令,可以看到所有使用系统资源的情况。然后再按一下 1,就会显示你服务器逻辑CPU的数量以及现在服务器CPU各个参数。其中 PID 是对应的线程号 ,找到占用CPU最高的的线程号后,执行下面的命令可以找到导致cpu高的线程号。
top -H -p pid 或者执行ps mp pid -o THREAD,tid 可以查看线程占用CPU 的情况。
最后使用JVM自带的jstack命令导出当前所有线程的运行情况和线程当前状态,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题jstack tid > error.log
如果需要对cpu的使用情况主动监控的话 可以使用指令 vmstat 2 1查看cpu 的各种参数。
网友评论