[quote]
最近工作过程中,项目中出现了一点问题,使用top命令后,发现某个进程占用cpu高达百分之七十,便想看看是哪个线程占用了那么多资源
1、通过top命令找出占用cpu资源最高的进程号pid
[Img]http://dl2.iteye.com/upload/attachment/0124/6465/b2e4f348-47bb-31ef-a8f6-eea8100213ae.png[/Img]
2、通过此命令查询出是哪个线程占用的:ps p 33937 -L -o pcpu,pid,tid,time,tname,cmd
由于写文章的时候那个线程现象已经不存在了,所以模拟一下:
[Img]http://dl2.iteye.com/upload/attachment/0124/6467/1ec1e656-9efe-3a08-90ee-5ec5f149d4f2.png[/Img]
3、将信息打印到相应的文件当中:
jstack TID > test.txt(时候线程挂起的时候要加上-F)
4、在test.txt搜索线程号看是哪一行代码干的好事
[/quote]
最近工作过程中,项目中出现了一点问题,使用top命令后,发现某个进程占用cpu高达百分之七十,便想看看是哪个线程占用了那么多资源
1、通过top命令找出占用cpu资源最高的进程号pid
[Img]http://dl2.iteye.com/upload/attachment/0124/6465/b2e4f348-47bb-31ef-a8f6-eea8100213ae.png[/Img]
2、通过此命令查询出是哪个线程占用的:ps p 33937 -L -o pcpu,pid,tid,time,tname,cmd
由于写文章的时候那个线程现象已经不存在了,所以模拟一下:
[Img]http://dl2.iteye.com/upload/attachment/0124/6467/1ec1e656-9efe-3a08-90ee-5ec5f149d4f2.png[/Img]
3、将信息打印到相应的文件当中:
jstack TID > test.txt(时候线程挂起的时候要加上-F)
4、在test.txt搜索线程号看是哪一行代码干的好事
[/quote]