详情页标题前

腾讯云TDSQL-C MySQL版如何解决 CPU 使用率高的问题

详情页1

问题描述

TDSQL-C MySQL 版集群 CPU 利用率过高通常容易导致系统异常,例如:响应变慢、无法获取连接、超时等,大量的超时重试往往是性能“雪崩”的罪魁祸首。CPU 利用率过高场景,很多时候都是由异常 SQL 所导致,大量锁冲突、锁等待或事务未提交也有可能导致实例 CPU 利用率高。数据库执行业务查询、修改语句时,CPU 会先从内存中请求数据块:如果内存中存在对应的数据,CPU 执行计算任务后会将结果返回给用户,可能涉及到排序类高消耗 CPU 的动作。如果内存中不存在对应的数据,数据库会触发从磁盘获取数据的动作。这两个数据获取过程分别称为逻辑读和物理读。因此,性能较低的 SQL,在执行时容易让数据库产生大量的逻辑读,从而导致 CPU 利用率过高,也可能让数据库产生大量的物理读,从而导致 IOPS 和 I/O 时延过高。

解决方案

数据库智能管家 DBbrain 为用户提供三大功能来排查和优化导致 CPU 利用率过高的异常 SQL 语句:异常诊断:7 * 24小时异常发现诊断,提供实时优化建议。慢 SQL 分析:针对当前实例出现的慢 SQL 进行分析,并给出慢 SQL 的优化建议。审计日志分析:利用云数据库审计数据(全量 SQL),多维度深入分析 SQL 语句并给出优化建议。

方式一:使用“异常诊断”功能排查数据库异常情况(推荐)

异常诊断功能提供故障主动定位和优化,不需要任何数据库运维经验,不仅包括 CPU 利用率过高的异常,还几乎涵盖所有集群下读写实例或只读实例高频的异常和故障。操作步骤及示例如下:1. 登录 DBbrain 控制台,在左侧导航选择诊断优化,在上方选择异常诊断页。2. 在左上角选择实例 ID(可输入和搜索),切换至目标实例。3. 在页面中选择实时历史要查询的时间,若该时间段内存在故障,可在右侧的“诊断提示”中查看到概要信息。 4. 单击“实时/历史诊断”栏的查看详情诊断提示栏的诊断项可进入诊断详情页。事件概要:包括诊断项、起止时间、风险等级、持续时长、概要等信息。现象描述:异常事件(或健康巡检事件)的外在表现现象的快照和性能趋势。智能分析:分析导致性能异常的根本原因,定位具体操作。专家建议:提供优化指导建议,包括但不限于 SQL 优化(索引建议、重写建议)、资源配置优化和参数调优。

腾讯云TDSQL-C MySQL版如何解决 CPU 使用率高的问题

5. 选择优化建议页,即可查看 DBbrain 针对该故障给出的优化建议,本例中是 SQL 语句的优化建议。

腾讯云TDSQL-C MySQL版如何解决 CPU 使用率高的问题



方式二:使用“慢 SQL 分析”功能排查导致 CPU 利用率过高的 SQL

1. 登录 DBbrain 控制台,在左侧导航选择诊断优化,在上方选择慢 SQL 分析页。2. 在左上角选择实例 ID(可输入和搜索),切换至目标实例。3. 在页面中选择要查询的时间,若此实例在该时间段中有慢 SQL,SQL 统计会以柱形图的方式展示慢 SQL 产生的时间点和个数。
单击柱形图,下方的列表会显示对应的所有慢 SQL 信息(模板聚合之后的 SQL),右方会显示该时间段内 SQL 的耗时分布。

腾讯云TDSQL-C MySQL版如何解决 CPU 使用率高的问题

4. 针对 SQL 列表中 SQL 执行的数据进行判断和筛选,下面简单介绍一种判断方式:4.1 先按照平均耗时(或者最大耗时)降序,重点关注耗时处在 top 的 SQL,不推荐使用总耗时,容易受到执行次数多而累加的干扰。4.2 然后关注返回行数和扫描行数的值。若发现“返回行数”与“扫描行数”值相等的 SQL,大概率是全表查找并返回了。若发现几行 SQL 都有很多扫描行数,但返回行数都为0或特别小,说明系统产生了大量的逻辑读和物理读。当查找的数据量过大且内存不足时,该请求必然会产生大量的物理 I/O 请求,导致 I/O 资源大量消耗;大量的逻辑读便会占用大量的 CPU 资源,导致 CPU 利用率过高。

腾讯云TDSQL-C MySQL版如何解决 CPU 使用率高的问题

5. 单击 SQL 语句,可查看该 SQL 语句的详情、资源消耗以及优化建议。分析页:可查看完整的 SQL 模板、SQL 样例以及优化建议和说明,可根据 DBbrain 给出的专家建议优化 SQL,提升 SQL 性能,降低 SQL 执行的耗时。

腾讯云TDSQL-C MySQL版如何解决 CPU 使用率高的问题

统计页:可根据统计报表的总耗时占比、总锁等待时间占比、总扫描行数占比、总返回行数占比,横向分析该条慢 SQL 产生的具体原因,以及进行对应优化。明细页:可查看该类型的 SQL 的 user 来源、IP 来源、数据库以及其他明细信息。

方式三:使用“审计日志分析”功能排查导致 CPU 利用率过高的 SQL

前提条件:集群需要开通 数据库审计 功能。1. 登录 DBbrain 控制台,在左侧导航选择诊断优化,在上方选择审计日志分析页。2. 在左上角选择实例 ID(可输入和搜索),切换至目标实例。 3. SQL 透视图可选择 QPS 或慢查询次数维度。单击视图下方的日志 AAS 分析 > 创建分析任务,选择任务开始时间和时间范围,单击确定
任务创建后,任务列表中会显示任务生成,任务完成后,找到目标记录并单击
查看 SQL 分析,进入 SQL 分析详情页。

腾讯云TDSQL-C MySQL版如何解决 CPU 使用率高的问题

4. 在 SQL 分析页,可选择 SQL Type、Host、User、SQL Code 或 Time 维度的视图,并可选择时间段拉伸视图来查看具体时间点的数据。
下面表格中会展示该时间段内 SQL 的聚合详情以及执行信息。若对图中时间进行部分拉伸选中,表格中的 SQL 数据会随之变化,且仅展示图中时间范围内的 SQL 分析结果。

腾讯云TDSQL-C MySQL版如何解决 CPU 使用率高的问题

5. SQL 分析详情页下方表格中展示了聚合后的 SQL 执行的信息,包括:执行次数、总延迟、最大延迟、最小延迟、总影响行数、最大影响行数、最小影响行数等。可根据各项信息的组合排序,识别出待优化的 SQL。
示例:
根据执行次数降序排列,以定位执行次数较大或者执行次数有异常变化的语句,然后分析 SQL 执行次数的合理性并根据 DBbrain 给出的建议优化 SQL 语句。

腾讯云TDSQL-C MySQL版如何解决 CPU 使用率高的问题

通过查看执行次数、总延迟、最大延迟,可以判断出执行次数最多的前两个 SQL 语句的平均执行延迟很短,说明这两个 SQL 语句性能未出现异常。
但观察第三条语句就会明显发现其单条执行时间在100s左右,因为执行次数较少,故总延迟未在 top 前2,但这类 SQL 是需要进行优化的,可单击 SQL 查看 DBbrain 给出的专家建议、资源消耗分析曲线以及来源 IP 分析等。

腾讯云TDSQL-C MySQL版如何解决 CPU 使用率高的问题

还有一类 SQL 也需要引起重视,可以看到第四条语句的最大延迟和最小延迟相差很大,达到了200s以上,说明整个系统存在波动,需要进一步分析波动是因为网络问题还是数据量变化导致了执行计划改变。

腾讯云TDSQL-C MySQL版如何解决 CPU 使用率高的问题

如果 SQL 语句的执行次数和平均耗时相对比较合理,而且执行次数大的 SQL 也是最优的,当性能达到瓶颈时,建议 升级实例规格配置 或者使用 读写分离功能 来打散执行次数较大的 SQL 语句,或者采用前置缓存数据库进行优化。
官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/141484.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云对象存储媒体信息接口

    简介 本文档提供关于媒体信息接口的 API 概览和 SDK 示例代码。 API 操作名 操作描述 GetMediaInfo 查询文件信息 用于查询媒体文件的信息 注意 使用此接口前,请确保已打开官网控制台中数据处理下的媒体处理开关,否则会报错media bucket unbinded, bucket’s host is unavailable。详情请参见 开…

    腾讯云 2023年12月9日
  • 阿里云RDS数据库重置密码-云淘科技

    在使用RDS过程中,如果忘记数据库账号密码,可以通过控制台重新设置密码。 操作步骤 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。 在左侧导航栏单击账号管理。 在待重置密码的账号的操作列,单击重置密码。 在弹出的对话框中输入新密码并确认,然后单击确定。 密码要求如下: 长度为8~32个字符。 由大写字母、小写字母、数字、特殊字符中的任意三种组成。…

    2023年12月9日
  • 腾讯云对象存储产品概述

    对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据。腾讯云 COS 使所有用户都能使用具备高扩展性、低成本、可靠和安全的数据存储服务。COS 通过控制台、API、SDK 和工具等多样化方式简单、快速地接入,实现了海量数据存储和管理。通过 COS 可以进行任意格式文件的上…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云云函数(SCF)并发概述-云淘科技

    并发是云函数在某个时刻同时处理的请求数。在业务其他服务可以支撑的情况下,您可以通过简单的配置实现云函数从几个并发到数以万计并发的拓展。 并发运行原理 在调用函数时,云函数会分配一个并发实例处理请求或事件。函数代码运行完毕返回后,该实例会处理其他请求。如果在请求到来时,所有实例都在运行中,云函数则会分配一个新的并发实例。云函数遵循一个并发实例同一时刻仅处理一个…

    腾讯云 2023年12月9日
  • 腾讯云FPGA云服务器常见问题

    FPGA 是什么,我为什么需要它? FPGA 是一种常用的定制硬件的方式。与专用硬件(如 ASIC)相比,FPGA 非常灵活,可以在插入 PC 主板后现场编程。nFPGA 是可以使用软件配置的可编程集成电路。与只使用 CPU 的服务器相比,通过使用 FPGA,用户可以将应用程序处理延时降低,处理能力提高。此外,FPGA 可重编程,因此可以灵活地更新和优化硬件…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。