当前位置:网站首页>线上问题排查流程
线上问题排查流程
2022-08-05 05:19:00 【生病的毛毛虫】
问题排查
- 针对各种常见的线上问题,梳理下排查思路。
业务问题
- 线上问题大多数时候都是业务问题引发的问题,当线上环境绝大多数请求都是正常,当有部分或者某一个用户有问题,此时怎么针对性的排查
- 在当前微服务体系下,一般都会有分布式链路追踪系统 ,以及ELK日志系统,我们完全可以通过监控平台去找到问题的点:
- 异常日志的抓取

- 此时我们可以通过日志追踪得到当前用户的请求信息:

- 利用Arths的watch命令监控对应异常接口,通过日志得到对应的参数,通过Dubbo的invoke 命令模拟线上用户的请求,从而复现问题,解决问题
非业务问题
- Arthas工具是一个很好的在线定位问题的工具,安装简单
- 在非业务问题上的排查流程,必然先检查CPU, 内存, 线程等计算机核心资源
- 我们通过dashboard命令可以得到本服务中对应的信息,并且每隔几秒会获取最新数据。
- 可以在线程监控区域看到:线程id, 名称,状态,CPU占用情况,是否守护线程等
- 内存嘻嘻:堆内存,Eden区,Survivor区,老年代,方法区
- 机器情况

如上我们可以得到对应的线程信息关键的线程id
接着可以通过Thread thread_id 查询某个线程的执行堆栈,甚至都不用dump
还有反编译jad,在线查询对应类的源码信息,方便问题排查
但是大多线上事故都不会有时间去临时查找,对应生成系统,能在线定位时间不多,
我会按如下步骤进行:
- 按顺序重启有问题的机器,看是否能解决问题,
- 在此同时,在最后重启的哪台机器上先执行jmap -dump指令将java堆的线程情况保存下来
- 机器重启后如果不能恢复,会回退到之前版本,保证线上业务正常
- 将保存下的dump文件导入到本地
- 用jdk自带的 java visualVM工具将dump文件导入
- visualVM可以通过可视化界面查看 dump 文件中记录所使用的类,每个类中对象以及各种当前环境下具体内容线下分析具体原因后在去解决。
边栏推荐
猜你喜欢

TCP/IP四层模型

lvm logical volume and disk quota

【Day1】(超详细步骤)构建软RAID磁盘阵列

【Day8】Knowledge about disk and disk partition

Contextual non-local alignment of full-scale representations

Introductory document 05-2 use return instructions the current task has been completed

虚幻引擎5都有哪些重要新功能?

每日一题-电话号码的字母组合-0717

Wireshark抓包及常用过滤方法

每日一题-两数相加-0711
随机推荐
dsf5.0新建页面访问时重定向到首页的问题
C语言的一些小常识
入门文档11 自动添加版本号
【Day8】(超详细步骤)使用LVM扩容
入门文档08 条件插件
spark算子-parallelize算子
[Day8] Commands involved in using LVM to expand
硬核!Cocos开发面试必备十问,让你offer拿到手软
图片压缩失效问题
快问快答—腾讯云服务器常见问题解答
【Day8】Knowledge about disk and disk partition
Hard Disk Partitioning and Permanent Mounting
spark operator-wholeTextFiles operator
每日一题-字典
Spark源码-任务提交流程之-6.1-sparkContext初始化-创建spark driver端执行环境SparkEnv
账号与权限管理
Dsf5.0 bounced points determine not return a value
Spark源码-任务提交流程之-6-sparkContext初始化
Spark源码-任务提交流程之-6.2-sparkContext初始化-TaskScheduler任务调度器
每日一题-正则表达式匹配-0715