首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >宜信开源|案例:UAVStack的慢SQL数据库监控实战

宜信开源|案例:UAVStack的慢SQL数据库监控实战

作者头像
宜信技术学院
发布2019-07-08 18:29:09
7040
发布2019-07-08 18:29:09
举报
文章被收录于专栏:宜信技术实践宜信技术实践

背景

在此前的「UAVStack的慢SQL数据库监控功能及其实现」一文中,我们提到,数据库连接池监控能够让运维人员随时了解数据库连接池的状态,有效防止系统出现连接池活动连接数占满无法连接数据库的情况;而慢SQL监控功能则可以动态展示一个系统的SQL情况,帮助优化SQL语句,让系统更稳定。

今天我们通过三个案例继续介绍数据库监控功能在实际场景中的应用,帮助大家更好地了解这一利器。

案例一

上图是一个服务新功能上线的案例。

当时UAV收到了数据库慢SQL告警,登录系统进行问题诊断后,我们通过数据库监控发现了大量缓慢调用。

一条相对简单的SQL,执行了603次,平均执行时间达到1328.97ms,最大执行时间为1815ms。

原因在于新功能上线后,相关运维人员未及时增加索引。

点击图1中某一行可以查看详情(如图2所示)。本页列表包括了每一条SQL的开始执行时间、执行时长、入参、执行结果,可以看到每条SQL的执行时长均在1200ms+。

点击图2中某一行的调用链关联,可以跳转至本次SQL调用对应应用/服务的一条端到端完整的调用链路,JDBC操作对应的调用环节高亮显示,如图3所示。

案例二

上图为某外购催收系统的优化案例。

在系统未优化前,9:30-10:30单个服务节点的QPM为6000+,而给后端数据库带来的QPM是13–14+万。通过数据库QPM与服务节点QPM的比值可知,每个服务请求对数据库带来的SQL操作数为20+。

系统优化后,服务节点QPM不变,而数据库QPM下降到2–4万,数据库QPM与服务节点QPM的比值也下降到5左右。从监控层面上来看,系统优化效果还是比较明显的。

案例三

上图还是关于该外购催收系统的案例。

催收系统在查询催收历史时,统计记录数的count(*)语句,因为执行计划异常,执行效率低,占用了大量资源,导致数据库服务器CPU资源耗尽,进而催收系统不可用。

通过图5中可以看到,故障期间的慢SQL数目明显变大,慢SQL具体为count(*)语句。

通过图6可以发现,故障期间的连接池资源被耗尽,活动连接数达到峰值,而空闲连接数为0;SQL分类统计图表也显示故障期间查询错误SQL数量明显变大。

查看故障期间的慢SQL列表,3种执行时间长的SQL全是count(*)语句。

查看故障期间的慢SQL详情及与调用链关联,均显示了count(*)语句执行时间长以及执行错误。

关于数据库监控的应用实例就介绍到这里。欢迎大家持续关注UAVStack,与我们一起解锁更多智能运维新能力。

官方网站:https://uavorg.github.io/main/ 开源地址:https://github.com/uavorg

作者:谢知求

原文首发 UAVStack智能运维

◆ ◆ ◆  ◆ ◆

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 案例一
  • 案例二
  • 案例三
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档