openGauss学习笔记-136 openGauss 数据库运维-例行维护-检查数据库性能

本文主要是介绍openGauss学习笔记-136 openGauss 数据库运维-例行维护-检查数据库性能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • openGauss学习笔记-136 openGauss 数据库运维-例行维护-检查数据库性能
      • 136.1 检查办法
      • 136.2 异常处理

openGauss学习笔记-136 openGauss 数据库运维-例行维护-检查数据库性能

136.1 检查办法

通过openGauss提供的性能统计工具gs_checkperf可以对硬件性能进行检查。

前提条件

  • openGauss运行状态正常。
  • 运行在数据库之上的业务运行正常。

操作步骤

  1. 以操作系统用户omm登录数据库主节点。

  2. 执行如下命令对openGauss数据库进行性能检查。

    gs_checkperf
    

具体的性能统计项目请参见《工具与命令参考》中“服务端工具 > gs_checkperf > 性能检查项”。

示例

以简要格式在屏幕上显示性能统计结果。

gs_checkperf -i pmk -U omm
Cluster statistics information:Host CPU busy time ratio                     :    1.43       %MPPDB CPU time % in busy time                :    1.88       %Shared Buffer Hit ratio                      :    99.96      %In-memory sort ratio                         :    100.00     %Physical Reads                               :    4Physical Writes                              :    25DB size                                      :    70         MBTotal Physical writes                        :    25Active SQL count                             :    2Session count                                :    3

136.2 异常处理

使用gs_checkperf工具检查openGauss性能状态后,如果发现检查结果发现异常,可以根据以下内容进行修复。

表 2 检查openGauss级别性能状态

异常状态处理方法
主机CPU占有率高1、更换和增加高性能的CPU。2、使用top命令查看系统哪些进程的CPU占有率高,然后使用kill命令关闭没有使用的进程。top
openGauss CPU占有率高1、更换和增加高性能的CPU。2、使用top命令查看数据库哪些进程的CPU占有率高,然后使用kill命令关闭没有使用的进程。top3、使用gs_expand工具扩容,增加新的主机均衡CPU占有率。
共享内存命中率低1、扩大内存。2、使用如下命令查看操作系统配置文件/etc/sysctl.conf,调大共享内存kernel.shmmax值。vim /etc/sysctl.conf
内存中排序比率低扩大内存。
I/O、磁盘使用率高1、更换高性能的磁盘。2、调整数据布局,尽量将I/O请求较合理的分配到所有物理磁盘中。3、全库进行VACUUM FULL操作。vacuum full;4、进行磁盘整理,参考上面执行全库vacuum full或针对性做单表vacuum/vacuum full操作。5、降低并发数。
事务统计查询pg_stat_activity系统表,将不必要的连接断开。(登录数据库后查询:openGauss=# \d+ pg_stat_activity;)

表 3 检查节点级别性能状态

异常状态处理方法
CPU占有率高1、更换和增加高性能的CPU。2、使用top命令查看系统哪些进程的CPU占有率高,然后使用kill命令关闭没有使用的进程。top
内存使用率过高情况扩大或清理内存。
I/O使用率过高情况1、更换高性能的磁盘。2、进行磁盘清理。3、尽可能用内存的读写代替直接磁盘I/O,使频繁访问的文件或数据放入内存中进行操作处理。

表 4 会话/进程级别性能状态

异常状态处理方法
CPU、内存、I/O使用率过高情况查看哪个进程占用CPU/内存高或I/O使用率高,若是无用的进程,则kill掉,否则排查具体原因。例如SQL执行占用内存大,查看是否SQL语句需要优化。

表 5 SSD性能状态

异常状态处理方法
SSD读写性能故障使用以下命令查看SSD是否有故障,排查具体故障原因。gs_checkperf -i SSD -U omm

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

这篇关于openGauss学习笔记-136 openGauss 数据库运维-例行维护-检查数据库性能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/438891

相关文章

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

MySQL 数据库表与查询操作实战案例

《MySQL数据库表与查询操作实战案例》本文将通过实际案例,详细介绍MySQL中数据库表的设计、数据插入以及常用的查询操作,帮助初学者快速上手,感兴趣的朋友跟随小编一起看看吧... 目录mysql 数据库表操作与查询实战案例项目一:产品相关数据库设计与创建一、数据库及表结构设计二、数据库与表的创建项目二:员

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.