1、PostgreSQL中文社区第13届PostgreSQL中国技术大会聚焦云端创新汇聚智慧共享海信聚好看 张纪宽DBdoctor,AI加持的数据库智能诊断与优化PostgreSQL中文社区技术原理落地实况03行业案例04诊断现状0102PostgreSQL中文社区目录contentsPostgreSQL中文社区01 诊断现状:开源监控结合告警阈值缺乏提前发现的措施告警指标Prometheus+Grafana+AlertManager大促、放假就出问题以前不慢的,现在慢了平时很好,关键时候掉链子监控和日志没找到根因门槛高,依赖专业DBA出现问题,定位时间长故障后不知道如何处理需要大量故障经验沉淀故
2、障后,没有解决方案PostgreSQLOtherDBNodePostgreSQL中文社区01 诊断现状:基于专家经验构建规则树架构+存在的问题经验失效案例专家经验构建树SELECT*FROM device WHERE purchase_date=2023-05-31AND status=inactive AND device_id=0 AND device_name like%162b%;KEY1:(status,purchase_date)KEY2(status,purchase_date,device_name,device_id)PostgreSQL中文社区01 诊断现状:行业调研0.2
3、0.40.60.80.100.DBA架构师性能优化故障处理监控巡检安装部署备份恢复迁移升级性能优化、故障处理、监控巡检花费时间最多非常紧急,整日忙于救火出现故障互相推责扯皮平时不重视,故障驱动急责错CauseCategoryPercentSQLPerformance12.9%Data differenceReplication9.1%DROP TABLEData loss5.8%Disk fullOperationg env5.8%NetworkOperationg env5.8%Operating systemOperationg env5.2%Schema/indexingPerforma
4、nce5.2%innoDBPerformance5.2%ConfigurationPerformance4.5%ConfigurationReplication3.9%PostgreSQL中文社区01 诊断现状:根本原因缺乏代替规则的优化措施缺乏诊断性能的数学模型阈值缺乏更细粒度的监控数据现象1.关键重要节点掉链子2.没故障则认为没问题原因1.未达到告警阈值的隐患2.缺少日常的细粒度巡检现象1出现问题定位时间长2.传统监控浮于表面原因1.缺乏更深层的监控数据2.缺乏更精准的根因诊断现象1.强依赖难以传承的经验2.现象明确但无解决方案原因1.没有把经验与现象关联2.没有给出问题优化建议故障经验故
5、障经验故障经验定时采样10秒的慢日志告警数据根因PostgreSQL中文社区01诊断现状:DBdoctor重新定义数据库可观测利用最新采集技术,基于数学量化模型重新定义数据库可观测打破基于经验、规则、阈值的传统,彻底解决数据库性能问题来源传统监控经验规则传统监控无法解决数据库性能痛点规则经验精确性无保证打破传统重新定义02技术原理PostgreSQL中文社区PostgreSQL中文社区02 技术原理:智能诊断与优化思路智能优化细致数据代价评估智能调优全量采集量化消耗内核透视精确诊断数字化模型化智能化智能预测PostgreSQL中文社区02 技术原理:eBPF重新定义数据采集等待调度操作IOWa
6、it lockSending DatainitiateCPU单条SQL CPU消耗IO单条SQL IO消耗MEM单条SQL MEM消耗LOCK单条SQL 锁等待基于真实数据eBPFDBdoctor问题SQL分析PostgreSQL内核事务SQL阶段内核函数SQL1SQL2SQLClientReadbuffer_contenttupleWALSyncOn CPUOff CPU遍历聚合排序上下文切换BP日志日志数据Sendrecv索引、主键、表log、MDL计算中等调度内存操作操作IO等锁磁盘网络行、表、MD、其他SQL语句在内核中的执行堆栈PostgreSQL中文社区02 技术原理:基于数学模型