线上服务异常的定位、处理与优化的探索 - 第二章 线上服务常见问题

一.1. 常见问题列举

 

Ø cpu突然爆满、起飞。

Ø 服务器短暂无响应或假状态停机。

Ø 应用运行一段时间后变卡,提交请求明显速度下降。

Ø 页面响应慢,加载失败。

Ø 日志中出现大量数据库连接超时记录

Ø 某些固定时间点易发生服务停机或程序异常。

Ø 个别功能消耗资源过大影响整体速度显著下降。

Ø 打包发版后发现个别Class内函数没有按照预期逻辑执行。

一.2. 分析方法

 

围绕线上服务问题处理有两种最基本的分析方法:现场分析和事后分析。现场分析通过保留现场,采用诊断工具分析定位,现场分析对线上影响较大,一些场景(如关键业务运行高并发期)不太合适。事后分析则需要尽可能多收集现场数据后,然后立即恢复服务不影响业务,再针对收集的现场数据进行事后分析和复现。

一.3. 分层定位

 

应用层通过Java线程堆栈定位问题代码,分析代码逻辑。

数据库层通过定位死锁、分析慢SQL等。

框架层则需要理解框架机制。

JVM层需要对GC的类型和工作机制有深入了解,熟知常用的JVM参数作用。

一.4. 项目案例 

 

以下列举的几个项目案例在第五章节做一部分场景还原和处理演示

项目

现象

处理方案

隐去

应用运行一段时间后开始变慢卡顿,重启恢复正常,往复出现。

JVM调优

隐去

服务器偶现个别时间段无响应,大量异常日志出现。

JVM调优

隐去

影像接口日志代码被屏蔽,重扫影像异常,无法记录具体错误日志。

Arthas监控+热部署

posted @ 2022-12-05 19:46  江湖危险快点跑  阅读(61)  评论(0编辑  收藏  举报