ITPub博客

首页 > 应用开发 > Java > 定位生产环境中间件的问题代码

定位生产环境中间件的问题代码

原创 Java 作者:壹頁書 时间:2015-01-22 17:05:20 0 删除 编辑
经常遇到一种情况,就是程序上线了,随着访问量的增加,中间件服务器的负载急剧升高.
这个时候服务器很卡,却不知道卡在哪里,调整代码更无从谈起.

首先,先找到中间件的进程.
[root@centos6 ~]# jps -l
或者
[root@centos6 ~]# top

应该都可以找到中间件的进程号(PID)


然后
top -p pid 
按下shift+h 查看线程信息
[root@centos6 ~]# top -p 18810

找到CPU使用率较高的线程ID,以18818为例

在Linux执行命令,得到16进制的线程ID
printf 0x%x 18818
结果:0x4982

然后使用jstack指定中间件进程ID(PID)导出jvm信息
[root@centos6 ~]# jstack 18810 > jstack.log
[root@centos6 ~]# grep 0x4982 jstack.log 

可以从日志中找到堆栈信息,从而定位到问题的代码

参考:
http://www.iteye.com/topic/1132321
http://jameswxx.iteye.com/blog/1041173


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29254281/viewspace-1411158/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-10-19

  • 博文量
    620
  • 访问量
    6340007