首页 > 其他分享 >线上问题排查回答(转载)

线上问题排查回答(转载)

时间:2023-04-27 16:44:35浏览次数:30  
标签:回滚 有没有 接口 问题 排查 线上 告警 转载

面试官:「你是怎么定位线上问题的?」

这个面试题我在两年社招的时候遇到过,前几天面试也遇到了。我觉得我每一次都答得中规中矩,今天来梳理复盘下,下次又被问到的时候希望可以答得更好。

下一次我应该会按照这个思路去答:

1、如果线上出现了问题,我们更多的是希望由监控告警发现我们出了线上问题,而不是等到业务侧反馈。所以,我们需要对核心接口做好监控告警的功能。

2、如果是业务代码层面的监控报警,那我们应该是可以很快地定位出是哪儿的问题,毕竟告警逻辑都是我们写的嘛。如果是服务器资源/所依赖的中间件告警,那我们可能就要花点时间去排查啦。

3、不管怎么样,无论是系统告警还是是业务侧反馈系统或者接口出了问题。我们要想想在近期有没有发布过系统,如果近期发布过系统,判断能不能立马回滚到上一个版本,恢复系统平稳正常运行(在线上环境下,可用性是相当重要的)。回滚的时候要考虑接口有无依赖性,是否需要跟业务侧同步此次的回滚以及做相关的配合。

4、因为线上大多数的问题都来源于系统的变更,可能我们只是变更了很少的代码,但只要有一丝的逻辑没留意到,就真的很可能会导致出现问题,回滚很可能是最快能恢复线上正常运行的办法。

5、如果近期都没发布过系统,是系统告的警,那追踪下告警和报错日志,应该是可以很快地就能定位出问题。

6、如果不是系统告的警,是业务侧反馈出了问题,那这时候需要业务侧明确是哪个具体的功能/接口出了问题,有没有保留请求入参,有没有返回错误的信息,有何现象

7、知道了问题的现象之后,就需要根据经验排查可能是哪块出了问题了。我的经验一般是:先查存储侧有没有瓶颈(MySQL 的CPU有没有飙高,主从同步延迟是否很大,有没有慢SQL。Redis是不是内存满了,走了淘汰策略。搜索引擎有没有慢Query),把该服务所依赖的中间件的指标看一遍,这个过程中也要去看看服务接口的QPS/RT相关的监控。如果有某项指标不对劲,那顺着写入逻辑也应该很快能看出来

8、一般到这里,大多数的问题都能查出来。可能是逻辑本身的问题,可能是请求入参导致慢查询,可能是中间件的网络抖动,可能是突发或者异常请求的问题。

9、如果都不是,回归到应用和机器本身的监控:应用GC的表现、机器本身的网络/磁盘/内存/CPU 各种的指标有没有发现异常的情况。这里可能是需要运维侧一起配合看看有没有做过改动。

10、要是还定位不出来,看能不能复现,能复现都好说,肯定是能解决的。

11、要是不能复现,只能在怀疑的地方打上详细的日志再好好观察(问题定位不出来,很多时候就是日志不够详细,而日志在正常情况下也不应该打太多)

标签:回滚,有没有,接口,问题,排查,线上,告警,转载
From: https://www.cnblogs.com/mzBlogs/p/17359351.html

相关文章

  • 使用ethtool排查网卡速率问题
    今天去现场帮一个客户排查备份网络速率问题。用户期望是万兆的速率,但实际上目前只有千兆,因为目前上面运行着数据库,且数据量较大,千兆的备份网络速率不能满足用户备份数据库的时长要求。首先,确认备份网络是由两块网卡(eth3,eth4)做了bonding,起名为bondeth1。使用ethtool查看底层的et......
  • 记一次线上服务器问题排查过程
    问题描述前几天我们更新线上服务器,使用对应的新版客户端连接时,怎么都连不上,如果直接连接其他服,比如我们内部的测试服或者审核服,却一切正常。同时,如果使用老包连接服务器,也是正常的这个问题查的头疼,每一步都超出我的理解范围排查过程首先第一步,我们在服务器接口的必经之路上......
  • 记一次线上服务器问题排查过程
    问题描述前几天我们更新线上服务器,使用对应的新版客户端连接时,怎么都连不上,如果直接连接其他服,比如我们内部的测试服或者审核服,却一切正常。同时,如果使用老包连接服务器,也是正常的这个问题查的头疼,每一步都超出我的理解范围排查过程首先第一步,我们在服务器接口的必经之路上......
  • 记一次线上服务器问题排查过程
    问题描述前几天我们更新线上服务器,使用对应的新版客户端连接时,怎么都连不上,如果直接连接其他服,比如我们内部的测试服或者审核服,却一切正常。同时,如果使用老包连接服务器,也是正常的这个问题查的头疼,每一步都超出我的理解范围排查过程首先第一步,我们在服务器接口的必经之路上......
  • 记一次线上服务器问题排查过程
    问题描述前几天我们更新线上服务器,使用对应的新版客户端连接时,怎么都连不上,如果直接连接其他服,比如我们内部的测试服或者审核服,却一切正常。同时,如果使用老包连接服务器,也是正常的这个问题查的头疼,每一步都超出我的理解范围排查过程首先第一步,我们在服务器接口的必经之路上......
  • (转载)MFC下一个类调用另一个类中变量的解决方法
    https://blog.csdn.net/xiaqunfeng123/article/details/39207517/ 假如有类A,类B两个类。如果想在B中调用A的成员函数,该怎么办呢?方法一:在类B的cpp文件中包含A类的头文件,然后在B的需要调用A的函数的函数中,添加#include"A.h"B::funcB(){Aa;a.funcA();}由于类A的funcA不是静态(st......
  • 通过SDK接入EasyCVR平台,设备录像文件出现播放异常的原因排查与解决
    EasyCVR视频融合平台基于云边端一体化架构,部署轻快、功能灵活,平台可支持多协议、多类型设备接入,包括:国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等。平台可实现视频直播、录像、回放、检索、云存储、告警上报、语音对讲、电子地图、集群、智能分析以及......
  • JWT 实现登录认证 + Token 自动续期方案 转载
    过去这段时间主要负责了项目中的用户管理模块,用户管理模块会涉及到加密及认证流程,加密已经在前面的文章中介绍了。今天就来讲讲认证功能的技术选型及实现。技术上没啥难度当然也没啥挑战,但是对一个原先没写过认证功能的菜鸡甜来说也是一种锻炼吧。技术选型要实现认证功能,很容易......
  • 40 个简单又有效的 Linux Shell 脚本示例 转载
    1.HelloWorld程序员经常通过学习helloworld程序来学习新语言。这是一个简单的程序,将字符串“HelloWorld”打印到标准输出中。然后,使用vim或nano等编辑器创建hello-world.sh文件,并将以下行复制到其中。#!/bin/bashecho "Hello World"保存并退出文件。接下来,您需要......
  • 立升非线性节点探测器,助力排查不可见的窃密隐患
    非线性结点探测器是一种现代化中非常重要的环境检测装备,用于探测隐藏的半导体结点,主要是P-N结。传统的X射线检查难以发现埋藏在墙体、家具、走道等隐蔽位置的窃听器、针孔摄像头以及疑似爆炸装置中的电子引爆电路。为了应对这些场景的检测需求,相应的无损检测手段非常必要。立升非线......