云小课|GaussDB 如何进行性能调优
本文分享自华为云社区《【云小课】【第39课】GaussDB如何进行性能调优》,作者:阅识风云。
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。
GaussDB 性能调优过程需要综合考虑多方面因素,因此,调优人员应对系统软件架构、软硬件配置、数据库配置参数、并发控制、查询处理和数据库应用有广泛而深刻的理解。
调优流程
调优各阶段说明,如下表所示。
数据库性能调优通常发生在用户对业务的执行效率不满意,期望通过调优加快业务执行的情况下。正如“性能因素”小节所述,数据库性能受影响因素多,从而性能调优是一项复杂的工程,有些时候无法系统性地说明和解释,而是依赖于 DBA 的经验判断。尽管如此,此处还是期望能尽量系统性的对性能调优方法加以说明,方便应用开发人员和刚接触 GaussDB 的 DBA 参考。
性能因素
多个性能因素会影响数据库性能,了解这些因素可以帮助定位和分析性能问题。
系统资源
数据库性能在很大程度上依赖于磁盘的 I/O 和内存使用情况。为了准确设置性能指标,用户需要了解集群部署硬件的基本性能。CPU,硬盘,磁盘控制器,内存和网络接口等这些硬件性能将显著影响数据库的运行速度。
负载
负载等于数据库系统的需求总量,它会随着时间变化。总体负载包含用户查询,应用程序,并行作业,事务以及数据库随时传递的系统命令。比如:多用户在执行多个查询时会提高负载。负载会显著地影响数据库的性能。了解工作负载高峰期可以帮助用户更合理地利用系统资源,更有效地完成系统任务。
吞吐量
使用系统的吞吐量来定义处理数据的整体能力。数据库的吞吐量以每秒的查询次数、每秒的处理事务数量或平均响应时间来测量。数据库的处理能力与底层系统(磁盘 I/O,CPU 速度,存储器带宽等)有密切的关系,所以当设置数据库吞吐量目标时,需要提前了解硬件的性能。
竞争
竞争是指两组或多组负载组件尝试使用冲突的方式使用系统的情况。比如,多条查询视图同一时间更新相同的数据,或者多个大量的负载争夺系统资源。随着竞争的增加,吞吐量下降。
优化
数据库优化可以影响到整个系统的性能。在执行 SQL 制定、数据库配置参数、表设计、数据分布等操作时,启用数据库查询优化器打造最有效的执行计划。
调优范围确定
性能调优主要通过查看集群各节点的 CPU、内存、I/O 和网络这些硬件资源的使用情况,确认这些资源是否已被充分利用,是否存在瓶颈点,然后针对性调优。
如果某个资源已达瓶颈,则:
检查关键的操作系统参数和数据库参数是否合理设置。
通过查询最耗时的 SQL 语句、跑不出来的 SQL 语句,找出耗资源的 SQL,进SQL调优指南。
如果所有资源均未达瓶颈,则表明性能仍有提升潜力。可以查询最耗时的 SQL 语句,或者跑不出来的 SQL 语句,进行针对性的 SQL 调优指南。
版权声明: 本文为 InfoQ 作者【华为云开发者联盟】的原创文章。
原文链接:【http://xie.infoq.cn/article/500a6f3e17c57db273f8582da】。文章转载请联系作者。
评论