1.查询对应进程 pid
jps 或者ps -ef |grep java
2.查询该pid对应的内存分配是否不合适
jmap -heap pid
3.找到最消耗内存的对象 C B I S
jmap -histo:live pid | more
4.查询网络连接数
netstat 或者 ll /proc/pid/task |wc -l
5.定位cpu问题
top -c 查看运行信息,找出最消耗cpu的进程
6.查询最消耗cpu进程的线程
6.1. top -Hp pid, 获取到最大cpu占用的线程id
6.2 . 将改线程id转换为16进制 printf "%0x\n" thread_id
6.3. 查看该线程堆栈信息 jstack pid |grep '0x{thread_id}' -C5
7.监控heap和jvm垃圾回收,主要是gc的情况
jstat -gcutil pid
8.查看线上堆大小以及gc收集器
java -XX:+PrintCommadnLineFlags -version
9.查看运行情况
ps -eo pid,tty,user,comm,lstart,etime |grep pid
10.根据端口号查进程pid
lsof -i:port
netstat -nap|grep port
11.根据进程号查端口
netstat -nap|grep pid
12.根据进程pid查看服务路径
ps -ef|grep java 查看进程pid
ll /proc/pid/cwd 查看服务安装路径
13.
JAVA_OPTS="-Xms1024m -Xmx4096m -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -Xloggc:/log/tomcat_gc.log -XX:HeapDumpPath=/log/java_heapdump.hprof"