如何在服务器上快速定位cpu或者内存使用率特别高的进程及运行在其上的线程
在服务器上排查cpu率使用高的进程时可以借用阿里的Arthas工具(特别好用),也可以只借助操作系统的命令,其实现步骤如下:
- 第一步:采用top命令查看使用率高的进程:
或者用jps查看系统中正在运行的java进程:
- 第二步:查看属于一个进程中的所有线程的运行情况:top -H -p pid,找出最高的线程id。
将十进制的线程号转为16进制。
27808(十进制) —> 6ca0(十六进制) - 第三步:导出线程堆栈,查看所有线程运行情况:jstack pid > pid.tdump,在生成的文件中查找线程号,机找到是哪个线程占用较高的cpu或者系统资源了。