线上问题排查命令

java进程排查
    ps aux | grep java |grep -v grep
    dump内存:jmap -dump:format=b,file=/tmp/dump.dat
    
    jps -l 可以查看java进程的完整名(包括包)
    jinfo -flags <进程id> 查看java进程的一些参数
    jinfo -flag <参数名> <进程id> 查看具体的参数
    jstat -gc <进程id>
    jstat -gc <进程id> <毫秒> <次数> 多少秒打印一次,共打印多少次
    netstat -anp|grep [port]  查看端口占用 lsof -i:[port]
top -Hp pid 查看最消耗cpu的线程
Dump过程:
①top 查看%CPU占用情况,查看哪个java进程占用cpu比较高
jps -l 确定是哪个进程

jps -l 得到22243

②ps -mp 进程号,tid,time 通过ps 查看具体哪个JVM线程,找到消耗cpu最大的线程(tid)
#ps -mp 22243 -o THREAD,tid,time
③然后把上面消耗cpu最大的线程id(tid)转化为16进制,在shell中使用printf “%x\n” tid即可,我当时的线程得到的16进制id为:56ed:

printf “%x\n” 22253

④用jstack 查看具体线程栈信息:jstack [进程id] | grep [线程的16进制id] -A行数
#jstack 22243 |grep 56ed -A30
也可以到处dump文件,到visualVM里去分析:

jmap -dump:format=b,file=dumpfile.dat 22243

注: 查看gc情况:

jstat -gcutil 22243 1000 5 (每1000毫秒输出一次共5次)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值