返回顶部
首页 > 资讯 > 前端开发 > VUE >分析数据库实例性能调优利器Performance Insights
  • 665
分享到

分析数据库实例性能调优利器Performance Insights

2024-04-02 19:04:59 665人浏览 安东尼
摘要

这篇文章主要讲解了“分析数据库实例性能调优利器PerfORMance Insights”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分析数据库实例性能调优利

这篇文章主要讲解了“分析数据库实例性能调优利器PerfORMance Insights”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分析数据库实例性能调优利器Performance Insights”吧!

Performance Insights是什么

阿里云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数量均等的活跃会话数。

因此,我们可以用RDS数据库系统中,平均活跃会话(AAS)数与MaxVcores数的量化对比,做为判定系统是否存在瓶颈的重要依据。

Performance Insights能做什么

阿里云RDS Performance Insights能够帮助我们的用户快速方便、直接了当的发现数据库实例负载,以及导致性能问题的SQL语句。目前Performance Insights页面以三个方面承载我们的产品思路:

关键性能指标趋势图:关键资源利用率变化趋势图。

实时AAS变化趋势图:数据库实例中平均活跃会话(Average Active Sessions)实时变化趋势。
多维负载信息:展示多维度实例负载信息。
关键资源利用率趋势图

阿里云RDS Performance Insights关键性能指标的趋势图,可以从宏观的角度帮助客户发现实例负载的来源,比如:到底是CPU资源吃紧,IOPS过高?还是网络开销过大,又或是活跃连接数打满?

分析数据库实例性能调优利器Performance Insights

实时AAS变化趋势图

从关键资源利用率趋势图部分,我们已经大致清楚了实例负载的来源。接下来,带着这个问题,我们去看看目前实例中活跃会话的资源等待情况。那么,此时我们可以来到页面的第二个部分:实时AAS变化趋势图。

分析数据库实例性能调优利器Performance Insights

从Performance Insights中的实时AAS变化趋势图中,我们可以非常清晰的发现RDS实例中的资源等待情况。比如上图,我们可以分析出以下重要信息:

时间10:25 - 10:57之间,平均活跃会话远远大于实例CPU Cores数量24(几个点低于CPU Cores),说明数据库已经面临比较大的系统瓶颈。
从AAS变化趋势图来看,几乎是在等待蓝色标示的资源,即CPU资源。

由此可见,我们使用Performance Insights中的实时AAS变化趋势图,可以非常清晰简单,直接了当的找到用户RDS实例负载来源,资源等待于何时、何处,以及变化规律。

多维度负载详情

通Performance Insights中的实时AAS变化趋势图,掌握了实例负载来源,资源等待及变化规律,接下来用户理所应当最关心的一个问题便是:到底导致这些实例负载的具体查询语句是什么?哪个用户导致的?哪个连接主机客户端?哪个应用数据库?这一系列的问题我们可以使用多维负载信息部分来解答。

分析数据库实例性能调优利器Performance Insights

从以上截图的下半部分,我们可以方便的找出与AAS变化趋势关联的负载对应的SQL查询语句,以及每个语句对AAS的贡献的对比情况。当然,您也可以根据自己的需要切换为Waits,Users,Hosts,Commands,Databases和Status,分别表示资源等待,用户,客户端主机,命令类型,数据库,进程状态等维度查看。

Performance Insights架构

了解阿里云RDS Performance Insights能够做什么以后,让我们来看Performance Insights的设计架构图,简要概括为五个字:四层两链路。

分析数据库实例性能调优利器Performance Insights

四层架构

RDS Performance Insights四层架构从上往下,依次为:

应用层:前端用户可见,承载着我们产品的思路和逻辑,是终端用户可见的产品呈现。 
服务层:各系统api协调工作,为应用层提供应用数据服务,我们产品主要的业务逻辑处理层。 
数据层:数据实时处理平台,统计汇总,数据扁平化,实时计算,最终持久化到元数据库中,为服务层提供数据。 
采集层:从RDS实例中,采集有价值的基础数据,为数据层输入数据。

两条链路

从数据链路来看Performance Insights,有两条链路:

访问链路:数据至上而下请求访问,至下而上的数据返回。 
采集链路:数据从生产到消费,从统计汇总到最终落库整个生命过程。

典型案例

以下两个典型案例,来看看Performance Insights如何一目了然,一针见血的帮助我们诊断分析数据库系统瓶颈,资源等待和SQL查询语句。

为什么CPU 100%了 
XXX时间点SQL查询变慢了

为什么CPU 100%了?

在我们多年的专家服务过程中, 遇到最多的用户问题便是“为什么我的CPU 100%了”,来看看Performance Insights是如何庖丁解牛这个问题。

Performance Insights截图

以下是该RDS实例,Performance Insights页面截图。

分析数据库实例性能调优利器Performance Insights

分析

我们从Performance Insights页面截图分析出以下几个问题:

从资源利用率中CPU使用率和活跃会话数量来看:大概在 09:59 - 10:05,均有大幅上升。CPU使用率达到了100%,活跃会话(Active Sessions)达到了400+;

AAS变化趋势中发现,这段时间内,系统瓶颈主要集中在CPU和Lock两资源的等待,总的Active Sessions数远远超过CPU Cores(实例的CPU Cores为16),存在严重的系统瓶颈。

SQL语句详情部分:非常清晰的看到排在第一位的SQL查询语句是等待CPU资源,达到了96个活跃会话;第二位是Lock资源等待,达到了79个会话,可以点击SQL语句,查看详情。

XXX时间点SQL查询变慢了

另外,用户经常遇到的一个问题是“为什么我的SQL查询语句突然变慢了”?

Performance Insights截图

某RDS实例用户反馈在16:05左右,原本执行很快的Update语句,突然变得很慢,16:08左右恢复正常,以下是该RDS实例

从Performance Insights,我们可以分析出:

从AAS变化趋势图中,发现大约从16:05:50秒开始,系统出现了大量等待Lock资源的活跃会话(图中橙色颜色区域),达到了33个,远超CPU Cores数。

从截图最下部分SQL查询中,发现等待Lock资源的SQL语句(第一条,橙色标示),恰巧是用户抱怨变慢的Update操作语句。于是我们可以很快断定,这个Update变慢的原因是资源被住,导致等待锁资源释放时间过长,拉长了执行时间,即Update语句变慢了。
从AAS变化趋势图中,发现大约在16:07:20左右,等待锁资源的活跃进程消失了,Update语句性能恢复正常,说明锁资源已经释放。

以上,我们从两个特定的用户案例可以看到Performance Insights可以简单直观,轻松愉悦的帮助用户诊断问题,关联分析系统瓶颈,资源等待和SQL查询,取得了非常好的效果。

Performance Insights的未来

伴随阿里云RDS Performance Insights第一期发布,我们已经可以帮助用户快速发现RDS实例性能问题,以及导致性能问题的具体SQL查询。但是,这远远不够,我们还需要更深入的帮助我们的客户自动化、智能化解决问题。

从“是什么”到“为什么”

当前,用户通过阿里云RDS Performance Insights找到了导致性能问题的具体查询SQL语句后,接下来很自然的一个问题是,为什么这个查询语句会导致性能问题?是缺失必要的索引?统计信息数据倾斜?查询数据类型转换?Non-SARG查询等等?接下来,我们需要深入探索为什么SQL会导致性能问题。

从“为什么”到“怎么办”

当用户知道了SQL语句为什么有性能问题以后,接下来的问题便是:我该怎么做才能解决性能问题?我们需要明确告诉用户怎么办就能够解决性能问题。

从“怎么办”到“自动办”

随着用户能够解决SQL语句性能问题以后,用户接下来最为迫切的需求便是:阿里云能否帮我们预先发现、智能化、自动化处理解决这些类似的问题?

感谢各位的阅读,以上就是“分析数据库实例性能调优利器Performance Insights”的内容了,经过本文的学习后,相信大家对分析数据库实例性能调优利器Performance Insights这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 分析数据库实例性能调优利器Performance Insights

本文链接: https://lsjlt.com/news/85362.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 分析数据库实例性能调优利器Performance Insights
    这篇文章主要讲解了“分析数据库实例性能调优利器Performance Insights”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分析数据库实例性能调优利...
    99+
    2024-04-02
  • PolarDB数据库性能实例分析
    这篇文章主要讲解了“PolarDB数据库性能实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PolarDB数据库性能实例分析”吧!赛题概览比赛总体分成...
    99+
    2024-04-02
  • ORACLE数据库性能优化的示例分析
    这篇文章给大家分享的是有关ORACLE数据库性能优化的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。ORACLE数据库的优化方式和MYSQL等很大的区别,今天通过一个OR...
    99+
    2024-04-02
  • MySQL数据库性能优化的示例分析
    小编给大家分享一下MySQL数据库性能优化的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!为什么做优化??因为数据量太多了,项目部署上线再到用户使用,每天...
    99+
    2023-06-22
  • MySQL数据库性能优化之SQL优化的示例分析
    这篇文章将为大家详细讲解有关MySQL数据库性能优化之SQL优化的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  注:这篇文章是以 MySQL 为背景,很多内容...
    99+
    2024-04-02
  • Oracle数据库性能调优实战技巧
    标题:Oracle数据库性能调优实战技巧 在当今信息时代,数据库已经成为企业数据存储和管理不可或缺的重要组成部分。而Oracle作为业界领先的关系数据库管理系统(RDBMS),在企业中...
    99+
    2024-03-02
    性能 数据库 oracle sql语句
  • 大数据交叉报表性能优化实例分析
    这篇文章主要为大家分析了大数据交叉报表性能优化实例分析的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“大数据交叉报表性能优化实例分析”的知识吧。软硬件环境OS...
    99+
    2023-06-04
  • php性能优化实例分析
    这篇文章主要介绍了php性能优化实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php性能优化实例分析文章都会有所收获,下面我们一起来看看吧。前言如何提高程序运行速度,减轻服务器压力是服务端开发必须面对的...
    99+
    2023-07-02
  • golang函数的性能分析与调优
    go 语言函数性能优化包含以下步骤:使用 pprof 和 go tool trace 等工具分析性能瓶颈。使用 sort.search 等内置函数优化代码,有效降低时间复杂度。采用其他调...
    99+
    2024-04-28
    golang 函数性能
  • 一分钟掌握数据库性能调优秘诀:让你的数据库性能飙升
    索引优化 索引是数据库中最重要的性能优化技术之一,它可以大大提高查询速度。在创建索引时,需要考虑以下几点: 选择合适的索引列。索引列应该是有辨别度的,即能够将数据行唯一区分开来。 选择合适的索引类型。不同的索引类型有不同的特点,需...
    99+
    2024-02-13
    数据库性能调优 索引优化 查询优化 表结构优化 硬件优化。
  • 如何进行数据库性能调优
    如何进行数据库性能调优,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前言微软工程师的一个工程师曾经对性能调优有一个非常形象的比喻:剥洋葱 ...
    99+
    2024-04-02
  • 如何调优Aurora数据库的性能
    Aurora数据库是一种高性能、高可靠性的关系型数据库解决方案。要调优Aurora数据库的性能,可以采取以下几种方法: 使用合适的...
    99+
    2024-04-02
  • 【Azure SQL】数据库性能分析
    前置条件 用户有查询数据统计权限 GRANT VIEW DATABASE STATE TO database_user; CPU性能问题 正在发生 查看前X个CPU消耗查询 (汇总) SELECT TOP 10 ...
    99+
    2016-02-11
    【Azure SQL】数据库性能分析
  • MySQL数据库的性能分析
    本篇内容主要讲解“MySQL数据库的性能分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库的性能分析”吧!  1. MySQL性能优化简介  在...
    99+
    2024-04-02
  • PostgreSQL数据库性能调优的注意点以及pg数据库性能优化方式
    目录PostgreSQL 优化思路一、排序二、索引三、连接查询方式四、多表联查时PostgreSQL提供了一些性能调优的功能1.使用EXPLAIN2.及时更新执行计划中使用的统计信息3.明确用join来关联表4.关闭自动...
    99+
    2023-03-15
    PostgreSQL性能调优 PostgreSQL性能优化 PostgreSQL数据库
  • 轻松搞定数据库性能调优:一步一步教你优化数据库性能
    确定数据库性能瓶颈 第一步是确定数据库性能瓶颈所在。这可以通过以下几种方式来实现: 使用性能分析工具来识别慢查询和阻塞查询。 检查数据库日志文件,查找有关性能问题的线索。 使用操作系统工具来检查数据库服务器的资源使用情况。 分...
    99+
    2024-02-13
    数据库性能调优 性能优化 SQL查询优化 索引优化
  • PHP与数据库性能调优的集成
    随着互联网技术的飞速发展,数据库是网站开发中必不可少的一部分。而PHP是目前最常用的服务器端语言之一,它的高效性能和便捷的开发方式已经被广泛认可。但是,即使是最流行的技术也有其局限性,数据库性能问题是PHP开发人员必须面对的挑战之一。 那么...
    99+
    2023-05-17
    调优 PHP 数据库性能
  • 数据库性能调优的艺术:如何通过微调实现最佳性能
    一、索引优化 索引是数据库中用于快速查找数据的一种数据结构,通过创建适当的索引可以大大提高查询性能。在创建索引时,需要考虑以下几点: 选择合适的索引列:索引列应该具有较高的选择性,即不同的值较多。 避免创建过多的索引:索引过多会增加数...
    99+
    2024-02-10
    数据库性能调优 索引优化 查询优化 缓存优化 事务优化
  • MySQL数据库服务器的性能分析
    小编给大家分享一下MySQL数据库服务器的性能分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!3.1简介性能:为完成某件任务所...
    99+
    2024-04-02
  • 服务器日志分析:性能调优和故障排除的利器
    性能调优 识别瓶颈:日志可以显示服务器资源(如 CPU、内存、磁盘 I/O)的使用情况,帮助识别性能瓶颈。 调整配置:通过分析日志,可以了解服务器当前的配置,并确定是否需要调整以提高性能。 优化数据库查询:日志通常包含有关数据库查询的详...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作