• java常用问题排查工具


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

    1.ps -ef|grep java 或者 jps -l
    得到进程pid
    2.找到该进程内最耗cpu的线程,我一般使用:
    top -Hp pid
    3.cpu时间最长的就是pid为21742的线程,printf "x%\n" 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工具的使用,没有具体研究,后面贴上来
     
    六:如何查看堆外内存?
     
     
    lixnux常用的命令:
    find / -name filename.txt : 根据名称查找/目录下的filename.txt文件
    ls -l | grep 'jar' : 查找当前目录所有jar文件
    netstat -tln|grep 8080 :查看8080端口的使用情况
    pwdx pid:查看属于哪个程序
     
    数据库一些常用的命令:
    mysql -uroot -pabc123
    use xgame
    mysqldump -uroot -pabc123 xgame > /root/mysql_tmp_backup.sql;
    source /root/mysql_tmp/backup.sql;
     
    linux下软件安装(以安装java环境为例):
    删除linux自带的openjdk
    java -version
    rpm -qa|grep java
    java -version
    yum -y remove java-1.8.0-open jdk.x86_64
    rmp -ivh jdk-xxxx.rpm
    vi /etc/profile
    ls -s /usr/java/jdk/bin/java/sbin/java
    port JAVA_HOME=/usr/java/jdk
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  • 相关阅读:
    Bit Manipulation
    218. The Skyline Problem
    Template : Two Pointers & Hash -> String process
    239. Sliding Window Maximum
    159. Longest Substring with At Most Two Distinct Characters
    3. Longest Substring Without Repeating Characters
    137. Single Number II
    142. Linked List Cycle II
    41. First Missing Positive
    260. Single Number III
  • 原文地址:https://www.cnblogs.com/cr1719/p/6420476.html
Copyright © 2020-2023  润新知