定位问题边界
1、明确问题是外部的还是内部的;
2、清楚涉及到自己模块的业务流程的每一个细节;
3、和自己模块相关的外延基本业务要了解大致流程;
日志打印
只要和外部有交互的就要有打印(级别可以是debug),缩小问题范围。
Linux基础技能的使用
系统资源使用情况,错误日志查找等 top(查看cpu,内存等的使用情况) top -H -p <pid>(查看线程资源消耗情况) df(查看磁盘使用情况) tcpdump(抓包) ulimit(句柄数设置) netstat(查看连接情况) grep,find等的使用方法
JVM工具使用
jstack:当前时刻的线程快照 jstack -F -m <pid>:
查询死锁 jps:
查看当前的 java进程有哪些 jmap:实例个数以及占内存大小