Java 线上问题排查思路与工具使用
作为一名 Java 程序猿,平常工作除了 coding 之外,大部分时间(70%~80%)是用来排查线上问题的。掌握 Java 服务线上问题排查思路并能够熟练排查问题常用工具/命令/平台是每一个 Java 程序猿进阶必须掌握的实战技能。线上问题从系统表象来看归结起来总共有四方面:CPU、内存、磁盘、网络。例如 CPU 使用率峰值突然飚高、内存溢出(泄露)、磁盘满了、网络流量异常、FullGC 等等问题。本场 Chat 我将分享:
- 总结 Java 服务常见的线上问题
- Linux 常用的性能分析工具使用以及分析:top(cpu)、free(内存)、df(磁盘)、dstat(网络流量)、pstack、vmstat、strace(底层系统调用)等
- JVM 定位问题工具:jps(进程)、jmap(内存)、jstack(线程)等
- JVM GC 日志分析
- 实战案列分析
定位问题的能力要与业务场景紧密结合,提升自己解决问题的能力,事后总结每次线上遇到的疑难杂症慢慢形成自己的知识体系,这才是每个对技术有追求同学的核心竞争力。