文章目录
- openGauss学习笔记-136 openGauss 数据库运维-例行维护-检查数据库性能
- 136.1 检查办法
- 136.2 异常处理
openGauss学习笔记-136 openGauss 数据库运维-例行维护-检查数据库性能
136.1 检查办法
通过openGauss提供的性能统计工具gs_checkperf可以对硬件性能进行检查。
前提条件
- openGauss运行状态正常。
- 运行在数据库之上的业务运行正常。
操作步骤
-
以操作系统用户omm登录数据库主节点。
-
执行如下命令对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命令关闭没有使用的进程。top 3、使用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 |
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!