《专场21.4-基于人工智能技术的数据库故障诊断最佳实践-李忠良.pdf》由会员分享,可在线阅读,更多相关《专场21.4-基于人工智能技术的数据库故障诊断最佳实践-李忠良.pdf(31页珍藏版)》请在三个皮匠报告上搜索。
1、基于人工智能的数据库故障诊断技术李忠良+中兴通讯+高级系统架构师个人介绍李忠良 中兴通讯 高级系统架构师现任中兴AI算法团队技术负责人,先后研发了磁盘故障预测、数据库智能索引推荐、网络智能化等技术,对AI4DB有浓厚兴趣。秘密目录CONTENTSn技术背景技术背景nEBASE智能故障诊断方案智能故障诊断方案n分段式故障识别关键技术分段式故障识别关键技术n实验效果实验效果n未来工作未来工作Part 1Part 1技术背景业界相关数据库产品情况n云原生、分布式、HTAP是数据库未来架构演进趋势n数据库智能运维管理组件已经成为数据库的基本标配组件华为腾讯阿里中兴服务7*24客户服务、数据库专家服务、
2、云API管理套件l 数据管理DASl 数据复制DRSl 数据库安全DBSSl DB Brainl 数据传输订阅l 备份恢复l 容灾l 数据安全l DMSl HDMl DASl DTSl ADAMl DBSl 数据管理UIOMl 数据迁移l 数据备份l 异地容灾引擎产品NoSQLl DCSl Redisl Redis/Memcachel TcaplusDBl Tairl Redis/Memcachedl DCachel RedisOLTPl Taurus(云原生)l GaussDB(openGauss)l MySQL/PGl TDSQL-C(云原生)l TDSQL(MySQL)l MySQL/M
3、ariaDB/PGl PolarDB(云原生高可用集群)l OceanBasel PolarDB-X(云原生分布式)l MySQL/PG/MariaDBl GoldenDBl EBASE-Tl EBASE-C(云原生)OLAPl GaussDB(DWS)l TDSQL-Al AnalyticDBl EBASE-AHTAPl 在OLTP、OLAP中增强l TDSQL(PostgreSQL)l HybridDB图DBl GES图数据库l TGDBl GDB图数据库l 蚂蚁金服GeaBasel EBASE-G时序DBl GaussDB(for Influx)l openGemini(开源版本)l C
4、TSDBl Lindorm TSDBl 时序数据库 InfluxDB 版l EBASE-TS数据库技术发展趋势数据库架构创新技术数据库新硬件加速技术数据库智能优化技术异构计算专用硬件、独立内核、异构计算、专用硬件、独立内核、异构计算、FPGA加速加速GPU众核SIMD加速MISDPCIe DirectPM加速FPGA查询优化NVMe SSD内存访问加速内置AI引擎性能加速、降低运维成本、提升系统可靠性性能加速、降低运维成本、提升系统可靠性学习型索引查询优化代价估计智能执行外置AI引擎智能调参负载预测故障诊断SQL优化云原生HTAP超融合、云原生、数据库超融合、云原生、数据库Serverless
5、单主共享多主共享分布式存算分离HTAP向量化执行存储适配行列自动转换智能调度基数估算任务优化智能索引故障预测内存分离硬件加速多Master并行双擎合一PM访问加速DRAM结合NVM存储加速PM访问优化因新硬件快速发展,数据规模大幅增长,数据库云化趋势显著、硬件提升性能趋势显著、AI赋能优化趋势显著AI4DB:将AI Native技术应用于数据库内核实现目前业界研究热点:Oracle Self-Driving Datebase、华为GaussDB AI Native、腾讯、阿里、百度等对数据库AI技术都有深度研究和应用智能数据库技术蓝图异构硬件(GPU&CPU&TPU&NPU)Tensorflo
6、w、Pytorch、MADLibAI框架外置引擎参数调优索引推荐故障诊断负载预测自愈框架故障自动修复内置引擎AI新型索引AI物化视图AI代价估计AI分布估计算法GCN/GraphSage/GATDDPG/AC3/DPPOLR/DTree/LightGBMLSTM/prophet/TCN数据数据采集数据统计数据标注资源智能调度数据清洗学术相关工作数据典型方案优点缺点基于指标数据的OS资源消耗、负载、查询明细,包含时间,耗时,具体的SQL,使用的查询计划、OS和DBMS的配置参数,环境变量,kernel的参数,数据库server的参数,网络配置,相关驱动DBSherlock 1、FluxInfer
7、2、Dundjerski3异常类型全、包含专家经验,可解释性好迁移能力差,数据获取成本高基于日志数据的正常日志作为负样本、异常日志作为正样本,日志中提取时间、状态、事件信息Distalyzer4、Sentinel5采集数据成本降低迁移能力差,负样本搜索空间太大基于时间分析的数据库时间(处理用户请求各节点所花费的时间、使用和等待资源的时间)数据ADDM6、ProtoXplore7考虑了故障的时序特征信息模型迁移能力差n性能监控数据信息丰富,但条目繁多,分析难度相对较大n不良负载、不良索引、不良参数、资源瓶颈等故障,缺少告警信息与日志信息,诊断难度相对较大,对业务性能影响显著n性能故障的诊断在实践
8、中更有意义面临的挑战异常数据样本非常少l很多性能问题不会产生告警日志l很多性能问题发生时间非常短,状态指标监控数据不一定能捕捉到l稳定的生产环境故障很少发生采集数据样本成本高l采集数据对系统性能或多或少会产生开销l生产环境日志级别一般较高,这些日志数量较少,一般不足以定位故障l大表并且复杂查询产生大开销OLTP和OLAP差异大l现象差异很大,但是原因可能相同例如慢查询的执行时间和资源的监控数据两者差异很大,但是可能是由相同的根本原因引起的,比如都是因为糟糕的索引设计和死锁。Part 2Part 2EBASE智能故障诊断方案解决思路现代数据库系统结构庞大而复杂,运维工作量与难度较大其中,数据库故
9、障对生产环境的效率、稳定性具有重要影响现有故障检测方法对运维要求较高,效果有待提升人工排查:依赖于人力、经验,效率低下手动触发巡检:滞后性基于阈值的自动告警:容易产生误报、遗漏基于归因、聚类算法的相关研究:功能局限,效果有提升空间AI技术发展,广泛应用于业界考虑设计基于AI的故障检测算法 目标:提高告警精确率与召回率,减轻运维压力,提高业务性能基于专家筛选的监控指标基于融合机器学习算法模型树形算法结构分段式识别基于告警实时触发诊断数据库故障带来损失太大数据库监控指标太多专家DBA成本太高现有手段效果太差技术架构数据采集系统EBASE/PG/MySQL等数据库UIOM统一运维前台界面通过普罗米修
10、斯数据采集系统来采集数据库监控数据,UIOM进行智能诊断,诊断结果显示在前台界面,同时通过干预实现数据库故障自愈。框架设计样例数据库故障复现benchmark数据采集工具在线诊断离线训练真实业务数据库故障检测模型训练数据现场数据采集训练采集生成输入诊断结果记录调整DBA交互反馈优势分析16方法优势:基于机器学习,具有良好的准确率和召回率基于时间序列模式进行预测,优于静态指标等方法目前最佳模型在开源数据集上的平均准确率为0.988,召回率为1.0功能优势:实时故障检测诊断、故障预测自动监控,无需手动触发,无需人工分析各项指标,界面友好对于突发性故障,及时诊断故障类型对于累积性故障,在发生严重问题
11、前进行告警系统优势:额外性能开销低机器学习模型在客户端运行,对服务器的性能影响仅限于监控数据采集数据集构建17故障类型选择不良负载:高并发插入;负载激增;表膨胀;锁等待不良索引:索引缺失;索引过多不良参数:不良shared_buffers;不良work_mem资源瓶颈:CPU瓶颈;I/O瓶颈;内存瓶颈特点涵盖数据库常见性能故障故障表现均为查询性能显著下降,无告警信息与日志信息,诊断难度大及时发现上述故障,有利于数据库业务性能提升数据集构建-数据18 日志数据:集群日志:包括proxy日志、corosync心跳等;Pod日志,操作系统日志,Paas平台日志,PG公共服务管理日志性能监控数据:包括
12、CPU、内存、I/O、网络等 例:cpu.usage,io.wait-usage生成数据:查询语句信息、平均用时、调用次数、成功率等数据采集工具:数据库系统:MaxScale等工具 容器:datadog等工具 操作系统:Sysmon等工具 Debug日志:可使用log4j2,spdlog等工具进行收集故障诊断业务流程UIOMDB用户点击start开启容器开启容器初始化完毕开始采集数据诊断发送诊断结果点击stop销毁容器销毁容器PROXY DBUSER 首先用户触发在界面上点击start训练按钮,后台服务会给云平台发送指令,云平台会把UIOM容器和proxy容器(采集数据)启动,两个容器初始化完
13、毕后,UIOM会发送指令给proxy,proxy收到指令后开始采集数据,采集完的数据源源不断发送给UIOM,UIOM开始诊断分析,诊断完后发送诊断结果给用户界面显示。当诊断任务完成,用户点击stop按钮,UIOM容器和proxy容器通过云平台销毁。Part 3分段式故障识别关键技术故障诊断算法关键技术支持树形结构判断是异常后,先判断异常大类,再判断具体异常类型若属于某大类,但不属于其任何小类,则报告新类型实现:递归函数,深度优先搜索当前树结构:2层根节点判断是否异常,其余节点判断具体异常类型扩展步骤:用大类标签训练大类模型;调整树形结构故障诊断算法训练流程采集数据TimeCpu DiskNet
14、.System.23584221.2235012.878.449.210.75374211.59842153.116.563.220.22490934.7674633.211.502.516label:故障类型一:”数据库表膨胀故障”特征工程编码、分箱、归一化、标准化0.7244560.2344650.8422230.401278.0.4492120.6138710.7537740.7421150.321316.0.5632210.1521980.2242140.9093470.9633511.0.502516特征向量模型选型&
15、训练LR、DT、Random Forest、XGBoost、LigntGBM评估模型精确率、召回率、F1最优模型添加到多模型框架故障诊断模型预测流程预测流程:1)采集数据与特征化流程同训练流程。2)首先在前置分类模块调用K个故障大类模型,预测出该故障属于哪个故障大类,其次在该大类对应的故障模型下,比如预测出故障大类属于普通故障,再调用M个普通故障类型,预测出具体属于哪个普通故障。3)将结果输出给用户。通过界面显示或者结果文件的形式通知给用户。诊断数据故障判别无故障故障一故障十一11类故障诊断模型.故障类型未知故障输入否是有模型判定为是无模型判定为是故障诊断模型泛化能力提升添加故障大类添加故障小
16、类Part 4实验效果可视化监控指标数据图(e)网络阻塞图(b)CPU饱和图(d)不良JOIN查询图(c)锁等待图(a)可视化监控指标数据可视化监控指标数据测试准确率:训练集:验证集:测试集=7:2:1Part 5故障诊断未来工作故障诊断下一步工作诊断细粒度诊断细粒度算法模型优化算法模型优化增加易用性增加易用性联动自愈联动自愈参考文献1Yoon D Y,Niu N,Mozafari B.Dbsherlock:A performance diagnostic tool for transactional databases.In:Proceedings of ACM SIGMOD Confere
17、nce,2016.15991614.2 Liu P,Zhang S,Sun Y,et al.Fluxinfer:Automatic diagnosis of performance anomaly for online database system.In:Proceedings of IEEE IPCCC Conference,2020.183 Dundjerski D,Tomasevic M.Automatic database troubleshooting of azure sql databases.IEEE Transactions on Cloud Computing,2020
18、4Nagaraj K,Killian C E,Neville J.Structured comparative analysis of systems logs to diagnose performance problems.In:Proceedings of USENIX NSDI Conference,2012.3533665Glasbergen B,Abebe M,Daudjee K,et al.Sentinel:Universal analysis and insight for data systems.In:Proceedings ofVLDB Endow,2020.272027336Dias K,Ramacher M,Shaft U,et al.Automatic performance diagnosis and tuning in oracle.In:Proceedings of CIDR Conference,2005.84947 Kalmegh P,Babu S,Roy S.Analyzing query performance and attributing blame for contentions in a cluster computing framework.CoRR,2017.abs/1708.08435