线上问题定位
一、前言
1. 应用bug出现原因
(1)引入第三方库
(2)环境原因
(3)硬件
2. 现象
(1)请求超时;
(2)系统发生明显卡顿
二、常见线上问题
1. 所有 Java 服务的线上问题从系统表象来看归结起来总共有四方面:CPU、内存、磁盘、网络。例如 CPU 使用率峰值突然飚高、内存溢出 (泄露)、磁盘满了、网络流量异常、FullGC 等等问题。
2. 系统异常
(1)常见系统异常现象
a. CPU占用率过高
b. CPU上下文切换次数高,比如频繁从一个进程切换到另一个进程;
c. 磁盘空间不足;
d. 磁盘IO过于频繁;
e. 网络流量异常,比如连接数过多;
f. 系统可用内存低;
(2)获取异常现象数据工具
可以通过 top(cpu)、free(内存)、df(磁盘)、dstat(网络流量)、pstack、vmstat(虚拟内存统计)、strace(底层系统调用) 等工具获取系统异常现象数据;
(3)JVM定位问