10个常见触发IO瓶颈的高频业务场景

🚀 优质资源分享 🚀

学习路线指引(点击解锁) 知识定位 人群定位
🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

**摘要:**本文从应用业务优化角度,以常见触发IO慢的业务SQL场景为例,指导如何通过优化业务去提升IO效率和降低IO。

本文分享自华为云社区《GaussDB(DWS)性能优化之业务降IO优化》,作者:along_2020。

IO高?业务慢?在DWS实际业务场景中因IO高、IO瓶颈导致的性能问题非常多,其中应用业务设计不合理导致的问题占大多数。本文从应用业务优化角度,以常见触发IO慢的业务SQL场景为例,指导如何通过优化业务去提升IO效率和降低IO。

说明 :因磁盘故障(如慢盘)、raid卡读写策略(如Write Through)、集群主备不均等非应用业务原因导致的IO高不在本次讨论。

一、确定IO瓶颈&识别高IO的语句

1、查等待视图确定IO瓶颈

SELECT wait\_status,wait\_event,count(*) AS cnt FROM pgxc\_thread\_wait\_status 
WHERE wait\_status <> 'wait cmd' AND wait\_status <> 'synchronize quit' AND wait\_status <> 'none' 
GROUP BY 1,2 ORDER BY 3 DESC limit 50;

IO瓶颈时常见等待状态如下:

2、抓取高IO消耗的SQL

主要思路为先通过OS命令识别消耗高的线程,然后结合DWS的线程号信息找到消耗高的业务SQL,具体方法参见附件中iowatcher.py脚本和README使用介绍

3、SQL级IO问题分析基础

在抓取到消耗IO高的业务SQL后怎么分析?主要掌握以下两点基础知识:

1)PGXC_THREAD_WAIT_STATUS视图功能,详细介绍参见:

https://support.huaweicloud.com/devg2-dws/dws_0402_0892.html

2)EXPLAIN功能,至少需掌握的知识点有Scan算子、A-time、A-rows、E- rows,详细介绍参见:

https://bbs.huaweicloud.com/blogs/197945

二、常见触发IO瓶颈的高频业务场景

场景1:列存小CU膨胀

某业务SQL查询出390871条数据需43248ms,分析计划主要耗时在Cstore Scan

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值