zoukankan      html  css  js  c++  java
  • java常用问题排查工具

    一:jstack找到最耗cpu的线程并定位代码

    1.ps -ef|grep java 或者 jps -l
    得到进程pid
    2.找到该进程内最耗cpu的线程,我一般使用:
    top -Hp pid
    3.cpu时间最长的就是pid为21742的线程,printf "x% " 21742,得到十六进制,为a
    4.使用jstack pid | grep a,打印进程的堆栈信息
     
    二:linux历史指标数据
    sar -A:报告所有的信息
    sar -u:cpu利用率
    sar 2 5:每隔2s显示5次,cpu的使用情况
     
    关于cpu消耗的问题,一般通过这两种方式都可以解决,复杂的话需要借助于perf。
     
    三:jstat和gc日志
    jstat -gc pid 1000:每1s钟打印堆间使用情况
    jstat -gcutil pid
    有些人习惯于查看gc log:

    -XX:+PrintGC 输出GC日志

    -XX:+PrintGCDetails 输出GC的详细日志

    -XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)

    -XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)

    -XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息

    -Xloggc:../logs/gc.log 日志文件的输出路径

    我一般做如下的设置

     
    -XX:+PrintGCDetails -Xloggc:../logs/gc.log -XX:+PrintGCTimeStamps  
     
    四:jmap的使用
    jmap -dump:format=b,file=a.bin pid : 当需要dump内存查看的时候,内存dump出来以后,
    使用eclipse memory analyzer
    jmap -histo:live pid : 在需要强制执行fgc的时候
    有些人喜欢使用gcore,不过有些jdk版本支持的并不是很好。
     
    五:btrace工具的使用,没有具体研究,后面贴上来
     
  • 相关阅读:
    说说JSON和JSONP,也许你会豁然开朗,含jQuery用例
    利用CSS3实现页面淡入动画特效
    ajax
    jQuery弹性滑动导航菜单实现思路及代码
    angular 管理后台
    jq简单选项卡
    按钮60秒倒计时
    jq倒计时
    angular ui-route
    flex弹性布局
  • 原文地址:https://www.cnblogs.com/felixzh/p/9001062.html
Copyright © 2011-2022 走看看