线上问题排查命令
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 查看具体线程栈信息