在线业务的常见全栈故障种类与定位手段

在线系统的稳定性和可靠性是企业数字化转型成功的关键。然而,由于云环境和系统演进的复杂性,故障的发生几乎不可避免。本系列文章将对在线系统可能遇到的全栈故障进行分类,并结合网上的案例分析,对比常规分析诊断手段与Originx推理引擎是如何能够轻松找到全栈故障的根因。

本文为该系列的第一篇,主要介绍常见故障以及全栈故障定位的难点,后续系列文章将重点介绍如何使用Orginx高效定位故障。

常见故障分类与常规的分析定位手段

应用程序故障

代码缺陷导致应用崩溃或错误

案例:

2023年双11期间,某汽车在线订单平台的Tomcat服务节点出现了严重的线程池耗尽问题。事发当天上午10点多,随着大促活动的用户流量激增,结算服务的响应时间明显下降。到中午时,大量来自北京地区的用户反馈在提交订单结算时,页面卡顿严重,部分直接超时失败。经过一天的紧张排查,最终发现是Java结算模块存在循环等待的死锁问题。该模块中存在太多的锁粒度,再加上连接池等配置不合理,并发压力下更容易发生死锁。临时解决方案是扩容结算服务的资源,并重启Tomcat释放线程。次日即行修复死锁代码,并持续优化相关模块的并发能力。这次事故虽然只持续了一天,但给用户造成了极差的下订体验

定位方法:

 人为分析日志,分析代码,对线程池进行监控,对代码定制化锁的监控(很难实现,没有办法覆盖所有场景

资源不足(CPU、内存、磁盘)

案例:

 2023年5月12日,一家大型商业银行的新版网上银行系统在上线后不久遭遇了某些业务场景执行超时的错误。由于代码中存在一个未被发现的逻辑错误,导致在特定参数组合场景下,系统会重复执行某项业务逻辑,造成CPU使用率异常飙升。这种情况在测试环境中难以复现,因此未被及时发现。故障发生后,客户在进行转账和查询等操作时遇到了明显的延迟,严重时甚至导致服务不可用。银行紧急协调开发团队进行排查,在生产环境中利用jstack等工具查找CPU飙升的原因,最终在4小时内定位到了问题源头。通过快速发布补丁修复了BUG,并重新部署了服务。此次事件导致银行损失了大量客户交易,并对其声誉造成了一定影响。

 定位方法:

借助java分析工具,在故障能复现的时机,人为分析问题

应用配置问题

 案例:

 2023年3月15日,一家领先的金融支付服务公司遭遇了支付处理延迟的问题。由于对高峰时段的实例数扩缩容配置人为操作错误,导致在线支付服务的实例数量未能满足既定需求。在随后的高峰交易时段,支付系统出现了严重的延迟,部分交易无法完成,影响了客户的支付体验,并导致公司损失了数百万的潜在交易额。经过紧急扩展服务实例并重新配置负载均衡策略,服务在2小时内逐步恢复。此次事件突显了容量规划在金融服务中的重要性,并促使公司加强了对服务容量和性能监控的投资

 定位方法:

人为分析日志,分析代码,结合资源使用指标(单纯依赖CPU、内存、磁盘指标很难发现实例不够)


数据库故障

数据库连接问题

案例:

2022年春节假期前最后一个工作日,某大型在线商城的数据库连接池曾出现被耗尽的严重故障。当天上午10点前后,随着流量的激增,商城首页以及各大类目页的查询请求突然出现大量超时和失败。SRE在慌乱中排查了30分钟,最终确定是数据库连接池的问题,由于促销引起了流量波动,而数据库连接池配置仍是原来配置并不足以支撑大流量,可用连接资源在高峰时段几乎被同时耗尽所致。

定位方法:

建立数据库连接池监控关键指标

性能瓶颈(锁、查询等)

案例:

2022年8月20日,某知名在线旅游预订平台出现数据库死锁导致机票预订业务中断数小时。高峰期时大量并发订单涌入,引发系统内部事务互相等待访问同一资源,造成死锁并耗尽连接池。经过大面积业务重启,瘫痪2小时之后才恢复。事后,该平台对业务代码进行重构优化, 从根本解决死锁风险。此次事故造成约2000万元订单收入损失。

 定位方法:

建立数据库监控,建立死锁监控找到初始SQL语句的应用实例

网络故障

网络连接中断、延迟或丢包

 案例:

2023年4月,某互联网金融云平台因内部容器云平台的COREDNS服务器群集发生异常,导致整个私有云内的核心交易系统无法正常解析内部服务地址。在接下来的3个小时内,平台的放贷、风控等多个交易系统出现大面积延迟和连接中断,账户查询、委托下单等关键业务无法正常使用。据初步统计,这次故障给金融机构带来的直接经济损失高达数亿元人民币。最终通过手动配置绕过DNS解析,临时恢复关键系统连接,但整体恢复所需时间超过10个小时。事后分析发现,DNS集群全军覆没是由于COREDNS升级之后的bug导致,但是没有完善的监控导致故障发现严重滞后。

定位方法:

对应用日志和网络流量做监控,单独定制DNS解析关键指标

网络配置错误

案例:

2022年12月,世界杯决赛期间,某大型视频直播平台由于网络设备配置问题,导致导致网络丢包比例较大,数百万在线用户观看比赛直播受到严重影响,画面频频卡顿中断。该故障持续近2小时,给平台带来了广告收益损失,也影响了品牌声誉。经过紧急处理和优化,网络质量逐步恢复,但已错过了决赛最关键时段。

定位方法:

网络流量监控,对网络交换机、路由器建立监控体系


缓存故障

缓存命中率下降

 案例:

2023年6月8日早高峰,某知名新闻平台首页及文章详情页出现加载延迟、频繁超时。原因是缓存服务配置错误导致数据过早过期,高流量下未能及时刷新,与数据库产生数据不一致。经紧急调整缓存策略,禁用部分过期机制并扩容缓存集群,系统逐步恢复。但此次事故影响约200万访问,广告收益损失近百万元

定位方法:

建立APM监控体系,检查Trace的缓存访问次数和延时数据

消息队列故障

消息堆积或消费者延迟

案例:

案例:2023年5月15日,某知名电商平台消息中间件所在一台服务器磁盘出现坏道,导致消息写入延迟超10秒。高峰期部分订单消息阻塞,下游服务处理速度骤降80%,造成大量订单挤压及库存操作失败。由于该故障出现较少,SRE专家没有经验,排查期很长,长达1小时才排查出有问题的消息中间件实例,最后经磁盘热插拔修复坏道、调大消息队列容量等应急措施,系统逐步恢复。

定位方法:

建立APM监控体系 队列监控、人为分析日志

外部依赖故障

下游第三方服务调用延迟或失败

案例:

2023年7月6日,某金融科技公司接入第三方支付平台时,遭遇DNS故障导致解析异常,支付请求被调度至香港远程服务节点,网络延时高达200毫秒。当日下午2点开始,订单高峰期大量请求超时失败,支付接入率仅30%。经过一天的排查,终于确定了是第三方支付的DNS解析出现问题,临时固定域名,调用国内支付接口。但仍损失千万元订单手续费收入。

定位方法:

建立APM监控体系,同时在日志中建立关键指标


基础架构故障

硬件故障(服务器、存储、网络设备)
 案例:

2022年6月18日,618购物节期间, 某电商北京西单数据中心两台机架服务器主板同时发生故障,导致一个重要的订单系统服务中断。受影响的约6000名用户在下单支付环节遭遇失败,由于这个服务与商品库存管理直接相连,错过这个高峰期将可能导致损失数亿元营收。经过5小时的故障排查和系统切换,终于恢复正常。此次事故再次凸显了硬件冗余以及容灾能力对于电商业务的重要性。

定位方法:

硬件监控体系的建设

系统软件故障(操作系统、虚拟化层、软负载)

案例:

2023年3月,某热门视频直播平台在一场体育赛事直播过程中,由于负载均衡器组件发生故障,无法正确分发流量至下游转码服务器集群,导致部分转码节点超负荷宕机。此次事故造成大量用户无法观看直播画面,持续约2小时。经过现场工程师的快速响应和临时调度,负载得以重新分配,服务逐步恢复。但由于高峰期直播中断,给平台带来了可观经济损失和品牌声誉影响。事后分析发现,除了流量突发之外,负载均衡器在高压力下表现异常也是导致故障的重要原因。

定位方法:

研究中间件负载均衡器的指标体系,构建软负载的监控指标体系


覆盖全栈的监控体系建设和使用难度都很高

假设我们有能力建设一套统一的全栈监控体系和运维大数据平台,但对使用者而言,全栈系统仍存在以下两个主要难点:

使用难度高

数据量与信息过载

在云环境下,监控系统的数据生成速度和体量是巨大的。这不仅涉及到数据的海量收集,更在于如何从这些数据中迅速提取出真正有价值的信息。用户面临的挑战是,要在不断涌入的数据流中,识别哪些是关键性能指标的异常,哪些是日常波动的“噪声”。信息过载不仅仅是技术问题,它还可能导致决策迟滞,增加操作复杂性,甚至可能掩盖真正的系统问题。

人员技能与知识要求

全栈监控体系要求使用者不仅要对单一技术有深入了解,还要对整个技术栈有全面的认识。在技术迭代迅速的今天,要求团队成员不断学习新技术、新工具,并能够将这些知识应用于问题的诊断和解决中。这种跨领域的知识要求对人才的选拔和培养提出了更高的标准,同时也增加了团队管理的难度。

团队协作难

在故障排查的时候,全栈的监控体系不同模块可能由不同团队或个人管理维护,比如网络团队、硬件团队、应用团队等。但是,由于噪声的存在,不同人对故障可能有不同理解,容易出现相互推诿的情况,导致故障排查难以找到真凶。

建设难度高

实际上,建设统一的全栈监控体系也是很难的,主要难点体现在:

数据存储与管理的现实性

期望一个单一的存储系统能够无缝地处理所有类型的可观测性数据(如日志、指标、追踪等)是不现实的。每种数据类型都有其特定的存储需求和访问模式,这就要求存储解决方案必须具备高度的可扩展性和灵活性。同时,数据的生命周期管理、安全性和合规性也是需要重点考虑的因素。

技术整合的持续性

技术的不断演进要求监控系统能够适应新的工具和服务。这不仅仅是一个技术问题,更涉及到组织的战略规划和资源分配。随着新组件的引入,现有的监控架构可能需要不断地调整和优化,以保持其有效性和相关性。这个过程需要持续的投入,包括时间、资金以及专业知识。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/11346.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美国空军高调展示首个AI战斗机!部长亲自试驾全程未干预,10万行代码试飞21次

【新智元导读】美军战斗机,能由AI完成自主空战了!最近,美国空军部长Kendall亲自试驾了国防部正在研制的X-62A AI飞机。1小时的飞行过程中,Kendall全程未干预,所有动作都由AI自主完成。 最近,军事圈被这个消…

【JAVA】方法的使用

上一篇我们讲述了程序相关逻辑控制,这节我们来说说方法的使用。 1. 方法概念及使用 1.1 什么是方法(method) 方法就是一个代码片段. 类似于 C 语言中的 "函数"。方法存在的意义(不要背, 重在体会): 是能够模块化的组织代码(当代码规模比较复杂的时候).…

UKP3d,修改管道长度或标高的方法

南京用户问,请问这个起末点标高可以修改么?如图: 上述起末点的标高是不可以修改,用户没有详细阐述自已想要的结果。可能是以下几种场景,希望能帮助到用户: 1.修改管道长度: 1.1.(管道在模型的…

APP反抓包 - 客户端证书验证

一,校验的原理 下图为HTTP协议的请求过程:传输过程中都是明文数据 下图为HTTPS协议的请求过程: 注意:公钥加密的数据只能通过对应的私钥才能解密,就算是进行加密的公钥也不能进行解密。 上述的请求过程看似复杂,实际就是两部分: 通过公钥与私钥同步对称密钥使用对…

【C++】优先级队列与仿函数

🔥个人主页:北辰水墨 🔥专栏:C学习仓 本节内容我们来讲解优先级队列和仿函数。文中会附上优先级队列模拟实现的源码。 注意:本节我会把最大优先级队列和大堆名词混着用,他们两个本质是一样的。 一、priori…

Java并发编程:Thread原理解析和协程介绍

文章目录 一、java中的thread和操作系统中的Thread对应关系二、协程 一、java中的thread和操作系统中的Thread对应关系 在java中用户线程和内核线程是1:1的形式: 其中java层面创建的线程为用户线程,其对应的底层线程为内核线程。 Java生成线程的流程如…

使用GitLab自带的CI/CD功能在本地部署.Net8项目(二)

前置内容: 通过Docker Compose部署GitLab和GitLab Runner(一) 目录 一、创建代码仓库 二、创建GitLabRunner 三、注册Runner 四、配置Runner,绑定宿主Docker 五、创建.Net8WebApi项目进行测试 六、总结 一、创建代码仓库 …

【Redis7】10大数据类型之Stream类型

文章目录 1. Stream简介2. 生产消息命令(XADD)3. 查询相关命令3.1 获取指定范围内的消息(XRANGE)3.2 逆序获取指定范围内的消息(XREVRANGE)3.3 返回消息的数量(XLEN) 4. 删除消息命令(XDEL)5. 截取消息命令(XTRIM)6. 消费消息命令(XREAD)7. 消费者组管理命令7.1 创建消费者组(X…

考研数学|24像张宇那样的题?李林880和李永乐660不够用了?

以前的卷子就不说了,就说说最近的24年的考研数学题 24年考研数学真题评价: 首先数学二在计算量上超过了数学三,尤其是在高等数学的选择题部分,这使得数学二的难度可能略高于数学三,尽管两者之间并没有本质的差异。与…

【基础绘图】 10.饼图

效果图: 主要步骤: 1. 数据准备:自己赋值的随机数 2. 图像绘制:绘制饼图 详细代码:着急的直接拖到最后有完整代码 步骤一:导入库包及图片存储路径并设置中文字体为宋体,西文为新罗马&#…

java项目之车辆管理系统(springboot+vue+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的车辆管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 车辆管理系统的主要使用者分…

【Unity UI系统介绍】

Unity UI系统介绍 想了解更多游戏开发知识,可以扫描下方二维码,免费领取游戏开发4天训练营课程 Unity UI 是 Unity 引擎中的一套用户界面(UI)系统,允许开发者创建和管理游戏的用户界面。 Canvas:Canvas 是 Unity UI 的核心组件…

零基础又怎样?教你这样高效拿下HCIE!

HCIE认证是网络技术领域内权威的认证之一,对于零基础的学员来说,这似乎是一项几乎不可能完成的任务,很多人想转行都望而却步。 然而,只要策略得当,零基础的学员同样可以高效地迈向HCIE的殿堂。 今天就聊聊&#xff0…

CAD绘制3维场景图记录

文章目录 1.给三维体每个面上不同的颜色1.1 软件设置1.2 着色面 2.在长方体上画圆柱体 1.给三维体每个面上不同的颜色 1.1 软件设置 这里必须改为真实,否则之后的面上色只能显示更改了线条颜色 1.2 着色面 如果你菜单栏没有显示,在上面小倒三角那里…

windows@注册表介绍@注册表的查看和编辑操作

文章目录 abstractrefs注册表的主要组件包括根键极其缩写名称👺子键特性 查看注册表👺使用powershell查看路径下的子路径声明概念Get-ChildItem查看注册表路径下的项Set-Location进入注册表路径举例说明查看文件系统某个路径下的项查看某个注册表路径的项…

图和网络笔记

文章目录 1. A X 0 AX0 AX02. A T Y 0 A^TY0 ATY03. A X 0 AX0 AX0和 A T Y 0 A^TY0 ATY0的关系 1. A X 0 AX0 AX0 一个图可以由节点和边组成,假设我们有一个节点notes :n4,边edges:m5的有向图,表示如下 通过以上电路…

Pycharm使用Anaconda虚拟环境

一、前置 安装 Pychram安装 Anaconda,并配置虚拟环境 参考: Anaconda虚拟环境 anaconda虚拟环境pytorch安装 二、在Pycharm中使用Anaconda的虚拟环境 打开 Pycharm的命令行可以看到 Anaconda 的虚拟环境已经启动。 三、问题集合 (1&…

多模态产品在智能文档处理应用的展望------以TextIn模型为例

前言发展现状TextIn 文档解析技术文本向量化展望合合信息 前言 第十四届视觉与学习青年学者研讨会(VALSE 2024)于5月5日-7日在山城重庆渝北区悦来国际会议中心举办。大会聚焦计算机视觉、模式识别、多媒体和机器学习等领域的国际前沿和热点方向。大会中,合合信息智能…

限流算法(令牌桶漏桶计数器)

📝个人主页:五敷有你 🔥系列专栏:Spring⛺️稳中求进,晒太阳 业务重的三种情况:突发流量、恶意流量、业务本身需要 限流: 是为了保护自身系统和下游系统不被高并发流量冲垮,导致系统雪崩…

数据中心--AI时代的“炼油厂”

数据中心正在成为AI时代的“炼油厂”! 众所周知,AI的高歌猛进催生了对数据的海量处理需求。为了满足蓬勃的算力需求,全球开启了新一轮的数据中心建设热潮,数据中心业务正在以指数级的速度疯狂扩张。 此番情景,和第二…