提问/ 作为DBA运维的你是否有过这些苦恼
1) 什么?又有告警啦,CPU咋又飙高啦?IO又打满啦?对服务器赶紧一顿操作猛如虎,然并卵,故障犹如股市大盘,依然坚挺,还有客户、领导在后面排队督军,此时谁来help我呢?2)有时候出去面试, 明明感觉和面试官聊的很好,但面试完成后就没有后续,是否有过疑惑,这是why ? 面试官:请给出数据库实例所在的物理机上CPU飙高及IO飙高的故障排查思路。 应聘者:可以先查看当前系统的性能,然后在查看一下数据库的会话,一般都是慢日志导致的,针对慢sql优化进行话题展开。 面试者:如果io飙高确认不是慢sql导致的,该如何排查呢? 应聘者:啥?啥?啥?弄啥嘞?这该怎么回答,我也没遇到过啊,心中万只草泥马在奔腾。
其实站在面试官的角度看,也合乎情理。为啥嘞?可以细想一下:当同一个问题让你问上无数遍,而得到的答案都是类似的,你是否也会厌倦?但如果面试官有丰富的故障排错经验或处理过非慢sql导致的疑难杂症,他会怎么做呢?所以, 我们不要再让慢sql背锅了,有些疑难杂症慢sql也是背不动的,既然如此,该如何处理呢?别急,请往下看~
心中有章 遇事不慌
比生活中买cp中奖率高的就是我们运维中遇到的一些性能问题了:业务接口响应慢了、数据库卡了、服务器性能飙高了、数据库异常宕机了、业务时快时慢等意想不到又在情理之中的问题。那么,我们第一次(或多次)遇到又该如何处理呢?可以关注公众号,让小编为你排忧解难~ ✨一整套故障排查及应对策略送给你,让你像包拯一样断案如神: #首先我们碰到问题之后要做到心中有章(章程),遇事不慌。先沉着冷静,仔细了解故障现象(如果收到报警信息,则需要进行报警信息确认;如果是客户/用户反馈问题,要和客户确认现象,有时客户/用户反馈的问题不一定准确,为了缩短故障判断,我们需要确认故障现象来避免我们问题排查时进入思想误区); #其次我们需要根据故障现象来进行初步分析,例如:操作系统性能,我们要先查看操作系统当前的性能指标,确定是哪个应用程序导致的,如果是某个应用程序有问题(MySQL宕机),则需要进行日志收集; #然后确定了应用程序后我们可以进行具体分析。例如查看日志输出,使用性能工具进行分析(perf、pstack、pidstat、strace等); #接着通过日志或者现象我们可以得到部分结论,通过部分结论继续排查及论证,类似于包拯破案,层层抽丝剥茧,完善整个故障链条,针对同一个故障现象进行反复论证,防止出现冤假错案,也使最终结论更有说服力及专业性,让领导、客户、用户、伙伴都认可放心; #最后我们针对问题已经有了具体分析,也有了结论,我想故障该如何解决并避免等后续问题,你心中应该有答案了。此时就可以梳理成故障报告,昭告天下喽~
真实案例 我们能赢
说了这么多理论,想必你感兴趣的是货真价实的实践了,那么我们就拿一个真实案例进行分析—— 当数据库所在的实例IO高,该如何分析处理: 3.1%20故障处理场景岁月静好,阳光慵懒的午后,某人正在享受熟睡的香甜。突然的信息打破了温馨的画面...
什么!??? ⚠️收到一条某客户的数据库实例所在的宿主机磁盘io利用率高的报警信息! 这会导致客户的业务系统运转缓慢,万里的服务准则是优先保障客户业务正常运转!
运维DBA小伙伴瞬间惊醒,开始在键盘上运指如飞,大脑指令也在飞速运转。报警10s后:登录涉事服务器检查一下当前系统状态 大脑报告:目前系统load负载高,成上升趋势,cpu等待io的响应时长较高,说明故障刚发生没多久,可能存在磁盘io压力报警12s后:检查当前各个设备的磁盘IO情况 大脑报告:目前数据库所在的sda磁盘块设备io读写压力较大报警17s后:检查sda磁盘块的每秒读写比例 大脑报告:目前sda磁盘块压力较大,每秒写入比每秒读差距较大,说明当前存在大量的io写入报警23s后:快速检查一下sda磁盘中哪个应用程序占用的io较高(单台物理机多实例部署) 大脑报告:通过pidstat发现,确实是数据库(某个实例)的io比较高,且该实例部署在sda磁盘中,pid为73739报警30s后:快速分析该数据库实例哪一个线程占用io比较高 大脑报告:目前是74770这个线程占用的io比较高报警40s后:分析这个线程在干什么 大脑报告:目前这个线程在写入多个文件,文件句柄号有64、159报警50s后:看看这个文件句柄是什么 大脑报告:这个线程在大量写入临时文件报警60s后:通过线程号,看一下对应的会话信息 大脑报告:目前有一个sql执行了67s,且此sql使用了group%20by和order%20by,同时通过会话列表进行确认(故障已定位并反馈,进行相应的应急处理….)故障汇报后:分析一下慢sql,并和客户业务方沟通处理 大脑报告:已在进行中具体的实操步骤请详见 故障分析%20|%20linux%20磁盘io利用率高,分析的正确姿势 (该案例根据真实案例改编)经过上述一顿猛如虎的操作和排查,1-2分钟内快速定位了问题原因,且及时和客户业务方进行沟通,最大化地减少并避免了业务受到的影响。同时,在故障排查过程中保留了排查步骤及结果图,故障处理完成后进行故障报告编写,全流程专业、顺畅、有序的操作得到了客户的认可与肯定。
复盘: 故障排查结束后、万里的技术团队在做什么?
#1 继续完善及挖掘监控漏洞本次故障是监控系统先于业务发现故障,在业务感知前及时发现并进行了处理,没有造成任何对业务不利的影响,在监控预警阶段就把问题扼杀在摇篮里,充分体现了监控预警的重要性,后续还得继续挖掘及完善目前监控不到的信息,保障监测全面、准确;#2 继续整理各种故障场景预案针对常见的不同类型故障场景做好预案方案的梳理和筹划,形成完备的故障处理操作指南库,指导实际业务中的工作有序、快速、准确完成;#3 针对特定的故障排查思路制作自动化工具万里DBA团队针对特定或相同的工作流程进行工具化处理,实现自动分析,缩短人为处理的时间,最大程度实现重复、简单工作的自动化、智能化响应处理。
#说了这么多干货和方法,小编想告诉大家:作为一名从业多年的DBA运维人员,业务系统出现故障并不可怕,可怕的是我们没有任何思路和解决方案,出现问题时措手不及,影响了客户的业务运转,引发客户对公司技术团队专业能力的质疑。因此,万里数据库的技术运维团队,一方面不断完善 监控预警系统监控的信息和维度,尽可能保障监测的全面性、充分性;另一方面也 针对常见的不同故障场景制定各类预案和实施计划,防范问题于未然;再者,针对简单、重复的一些工作流程,万里数据库还制定了 专门的自动化工具,三管齐下,为客户的业务系统全面保驾护航。
把数据库运维工作交给万里数据库,
我们用心,
客户放心。
编辑推荐:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 包拯断案 | 别再让慢sql背锅@还故障一个真相
包拯断案 | 别再让慢sql背锅@还故障一个真相
26-03-01 - RestCloud ETL WebService数据同步到本地
RestCloud ETL WebService数据同步到本地
26-03-01 - RestCloud ETL解决shell脚本参数化
RestCloud ETL解决shell脚本参数化
26-03-01 - RestCloud ETL与Kettle对比分析
RestCloud ETL与Kettle对比分析
26-03-01 - ETL过程中数据精度不准确问题
ETL过程中数据精度不准确问题
26-03-01 - Java培训MySQL体系构架、存储引擎和索引结构
Java培训MySQL体系构架、存储引擎和索引结构
26-03-01 - 谁有Oracle Support Identifier帐号,帮我下载一个漏洞补丁,万分感谢。。膜拜。。
- 国内首款开源MySQL HTAP数据库即将发布,三大看点提前告知
国内首款开源MySQL HTAP数据库即将发布,三大看点提前告知
26-03-01 - 数据库管理Valentina Studio Pro
数据库管理Valentina Studio Pro
26-03-01 - MySQL审计插件介绍
MySQL审计插件介绍
26-03-01
