linux 排查问题
1. java 应用问题排查
CPU 占用率过高、CPU 上下文切换频率次数较高、磁盘满了、磁盘 I/O 过于频繁、网络流量异常 (连接数过多)、系统可用内存长期处于较低值 (导致 oom killer) 等等
常用的JDK监控和故障处理工具:jps, jstack, jmap、jstat, jconsole, jinfo, jhat, javap, btrace、TProfiler
1. 查看cpu占用高的进程PID
第一步:top -d 1 或top -H
第二步: 输入 shift+h ,打开线程模式,查看目前最耗系统资源的线程是哪些
2. 查看内存使用情况
jmap -heap PID
3. 查看gc回收情况(gc.log为具体文件路径)
jstat -gcutil PID 1000 20 > gc.log
4. 查看JVM存活时长(uptime.log为具体文件路径)
jcmd PID VM.uptime > uptime.log
5. 导出dump文件(heap.hprof为具体文件路径)
jmap -dump:live,format=b,file=heap.hprof PID
6.导出堆栈(jstack.log为具体文件路径)
jstack -l PID > jstack.log
或
jstack -F PID > jstack.log
或
jstack PID > jstack.log
2. java业务问题排查
PV 量过高、服务调用耗时异常、线程死锁、多线程并发问题、频繁进行 Full GC、异常安全攻击扫描
1. 查看error日志
一般业务日常都会在日志中体现,查看error日志或者异常日志中的error关键字
tail -f error.log
cat
vi/vim
2. 数据库相关异常
关注日志中出现的Could not get JDBC Connection,JDBCException
查看数据库连接请求、是否连接数过大,是否出现死锁、查看数据库慢日志定位具体SQL
3. OutOfMemoryError
发生OOM问题一般服务都会crash,业务日志会有OutOfMemoryError。
OOM一般都是出现了内存泄露,须要查看OOM时候的jvm堆的快照,假设配置了-XX:+HeapDumpOnOutOfMemoryError, 在发生OOM的时候会在-XX:HeapDumpPath生成堆的dump文件。结合MAT,能够对dump文件进行分析。查找出发生OOM的原因.
本文来自博客园,作者:与乐i,转载请注明原文链接:https://www.cnblogs.com/linanana/p/16034801.html