阿里云RDS Performance Insights是RDS CloudDBA产品一项专一于用户数据库实例性能调优、负载监控和关联分析的利器,以简单直观的方式帮助用户迅速评估数据库负载,资源等待的源头和对应SQL查询语句,以此来指导用户在什么时候、何处、采起何种行动进行数据性能优化。前端
几个名词解释数据库
Performance Insights:中文翻译过来叫性能洞察。性能优化
Active Session (AS):RDS数据库系统中,活跃的会话数量。网络
Average Active Session (AAS):一段时间内,RDS数据库中平均活跃会话数量。架构
Max Vcores:RDS数据库实例最大可使用到的CPU Cores数量。并发
AAS和MaxVcores来量化系统瓶颈性能
在文章开始,咱们但愿可以把一个很是重要的问题解释清楚:为何可使用AAS (平均活跃会话数)与RDS数据库实例MaxVcores量化对比来做为系统瓶颈的判断依据?咱们的理由是:优化
首先,RDS数据库系统中,咱们认为最为重要的资源是CPU资源,由于其余全部资源都须要CPU来调度。阿里云
其次,CPU的并发处理能力,与CPU Cores的数量相关。假设在至关小的一个时间切片上,CPU对活跃会话(AS)处理能力瓶颈就是CPU Cores数量。即:CPU最多同时可以处理与Cores数量均等的活跃会话数。spa
所以,咱们能够用RDS数据库系统中,平均活跃会话(AAS)数与MaxVcores数的量化对比,作为断定系统是否存在瓶颈的重要依据。
阿里云RDS Performance Insights可以帮助咱们的用户快速方便、直接了当的发现数据库实例负载,以及致使性能问题的SQL语句。目前Performance Insights页面以三个方面承载咱们的产品思路:
关键资源利用率趋势图
阿里云RDS Performance Insights关键性能指标的趋势图,能够从宏观的角度帮助客户发现实例负载的来源,好比:究竟是CPU资源吃紧,IOPS太高?仍是网络开销过大,又或是活跃链接数打满?
实时AAS变化趋势图
从关键资源利用率趋势图部分,咱们已经大体清楚了实例负载的来源。接下来,带着这个问题,咱们去看看目前实例中活跃会话的资源等待状况。那么,此时咱们能够来到页面的第二个部分:实时AAS变化趋势图。
从Performance Insights中的实时AAS变化趋势图中,咱们能够很是清晰的发现RDS实例中的资源等待状况。好比上图,咱们能够分析出如下重要信息:
因而可知,咱们使用Performance Insights中的实时AAS变化趋势图,能够很是清晰简单,直接了当的找到用户RDS实例负载来源,资源等待于什么时候、何处,以及变化规律。
多维度负载详情
通Performance Insights中的实时AAS变化趋势图,掌握了实例负载来源,资源等待及变化规律,接下来用户理所应当最关心的一个问题即是:到底致使这些实例负载的具体查询语句是什么?哪一个用户致使的?哪一个链接主机客户端?哪一个应用数据库?这一系列的问题咱们可使用多维负载信息部分来解答。
从以上截图的下半部分,咱们能够方便的找出与AAS变化趋势关联的负载对应的SQL查询语句,以及每一个语句对AAS的贡献的对比状况。固然,您也能够根据本身的须要切换为Waits,Users,Hosts,Commands,Databases和Status,分别表示资源等待,用户,客户端主机,命令类型,数据库,进程状态等维度查看。
了解阿里云RDS Performance Insights可以作什么之后,让咱们来看Performance Insights的设计架构图,简要归纳为五个字:四层两链路。
四层架构
RDS Performance Insights四层架构从上往下,依次为:
两条链路
从数据链路来看Performance Insights,有两条链路:
如下两个典型案例,来看看Performance Insights如何一目了然,一针见血的帮助咱们诊断分析数据库系统瓶颈,资源等待和SQL查询语句。
为何CPU 100%了?
在咱们多年的专家服务过程当中, 遇到最多的用户问题即是“为何个人CPU 100%了”,来看看Performance Insights是如何庖丁解牛这个问题。
Performance Insights截图
如下是该RDS实例,Performance Insights页面截图。
分析
咱们从Performance Insights页面截图分析出如下几个问题:
XXX时间点SQL查询变慢了
另外,用户常常遇到的一个问题是“为何个人SQL查询语句忽然变慢了”?
Performance Insights截图
某RDS实例用户反馈在16:05左右,本来执行很快的Update语句,忽然变得很慢,16:08左右恢复正常,如下是该RDS实例Performance Insights页面截图。
分析
从Performance Insights截图,咱们能够分析出:
以上,咱们从两个特定的用户案例能够看到Performance Insights能够简单直观,轻松愉悦的帮助用户诊断问题,关联分析系统瓶颈,资源等待和SQL查询,取得了很是好的效果。
伴随阿里云RDS Performance Insights第一期发布,咱们已经能够帮助用户快速发现RDS实例性能问题,以及致使性能问题的具体SQL查询。可是,这远远不够,咱们还须要更深刻的帮助咱们的客户自动化、智能化解决问题。
从“是什么”到“为何”
当前,用户经过阿里云RDS Performance Insights找到了致使性能问题的具体查询SQL语句后,接下来很天然的一个问题是,为何这个查询语句会致使性能问题?是缺失必要的索引?统计信息数据倾斜?查询数据类型转换?Non-SARG查询等等?接下来,咱们须要深刻探索为何SQL会致使性能问题。
从“为何”到“怎么办”
当用户知道了SQL语句为何有性能问题之后,接下来的问题即是:我该怎么作才能解决性能问题?咱们须要明确告诉用户怎么办就可以解决性能问题。
从“怎么办”到“自动办”
随着用户可以解决SQL语句性能问题之后,用户接下来最为迫切的需求即是:阿里云可否帮咱们预先发现、智能化、自动化处理解决这些相似的问题?
以上,即是RDS Performance Insights的产品脉络,从是什么到为何;从为何到怎么办;从怎么办到自动办,层层递进,步步为营,一步一步创造客户愈来愈高的诊断优化需求。
阿里云RDS Performance Insights是数据库实例性能调优、负载监控、关联分析的必备利器,它能够帮助用户决策从何处下手,什么时候采起行动,采起何种行动以及智能化自动解决问题根源。咱们有能力有信心能够帮助咱们的客户更好的上好阿里云,用好阿里云。
做者: 风移
本文为云栖社区原创内容,未经容许不得转载。