openGauss维护管理之DB性能检查gs_checkperf

时间:2020-12-14 01:00:04

一、概述

1、背景信息

openGauss提供了gs_checkperf工具来帮助对openGauss级别(主机CPU占用率、Gauss CPU占用率、I/O使用情况等)、节点级别(CPU使用情况、内存使用情况、I/O使用情况)、会话/进程级别(CPU使用情况、内存使用情况、I/O使用情况)、SSD性能(写入、读取性能)进行定期检查,让用户了解openGauss的负载情况,采取对应的改进措施。

2、前提条件

  • openGauss运行状态正常且不为只读模式。
  • 运行在数据库之上的业务运行正常。

3、注意事项

gs_checkperf工具的监控信息依赖于pmk模式下的表的数据。如果pmk模式下的表未执行analyze操作,则可能导致gs_checkperf工具执行失败。其报错示例信息如下。
LOG: Statistics in some tables or columns(pmk.pmk_snapshot.snapshot_id) are not collected.
HINT: Do analyze for them in order to generate optimized plan.
此时需要登录任一数据库主节点,连接postgres数据库执行如下SQL。
analyze pmk.pmk_configuration;
analyze pmk.pmk_meta_data;
analyze pmk.pmk_snapshot;
analyze pmk.pmk_snapshot_dbnode_stat;
analyze pmk.pmk_snapshot_datanode_stat;

4、语法

检查SSD性能(root用户)
gs_checkperf -U USER [-o OUTPUT] -i SSD [-l LOGFILE]

检查openGauss性能(openGauss安装用户)
gs_checkperf [-U USER] [-o OUTPUT] [-i PMK] [--detail] [-l LOGFILE]

显示帮助信息
gs_checkperf -? | --help

显示版本号信息
gs_checkperf -V | --version

5、参数说明

-U
运行openGauss的用户名称。
取值范围:运行openGauss的用户名称。
以root用户身份执行此命令必须指定该参数。

-o
指定性能检查报告输出到指定的文件。
取值范围:指定的文件名称。
不指定则将检查结果输出到屏幕上。

-i
指定检查项编号,-i参数值不区分大小写。格式:-i PMK、-i SSD。
取值范围:PMK、SSD。
只有openGauss用户才能检查PMK选项。
只有root用户才能检查SSD选项。
如果不指定该参数,以openGauss用户身份默认检查PMK,以root用户身份默认检查SSD。

--detail
显示PMK检查结果详情。

-l
指定日志文件的存储路径。
默认路径为:/var/log/gaussdb/omm/om/gs_checkperf-YYYY-MM-DD_hhmmss.log

-?, --help
显示帮助信息。

-V, --version
显示版本号信息。

6、性能检查项

1、openGauss级别
主机CPU占用率 主机CPU占用率。
Gauss CPU占用率 Gauss CPU占用率。
共享内存击中率 共享内存的击中率。
内存中排序比率 内存中完成的排序所占比率。
I/O使用情况 文件读写次数和时间。
磁盘使用情况 文件写次数和平均写时间、最大写时间等。
事务统计 当前SQL执行数和Session数。

2、节点级别
CPU使用情况 主机使用CPU情况,包括cpu busy time、cpu idle time等。
内存使用情况 主机使用内存情况,包括物理内存总量、已使用量等。
I/O使用情况 文件读写次数和时间。

3、会话/进程级别
CPU使用情况 会话使用CPU情况,包括cpu busy time、cpu idle time等。
内存使用情况 会话使用内存情况,包括物理内存总量、已使用量等。
I/O使用情况 会话共享缓冲区命中次数等。

4、SSD性能(只用root用户才能查看)
写入性能 使用dd命令(flag=direct bs=8M count=2560)向每个SSD写入内容,写入每个SSD时间应在10s左右。
读取性能 使用dd命令(flag=direct bs=8M count=2560)从每个SSD读取内容,读取每个SSD时间应在7s左右。

二、试验

1、登录openGauss
gsql -d postgres -p 26000 -r

2、对PMK模式下的表进行统计信息收集。
analyze pmk.pmk_configuration;
analyze pmk.pmk_meta_data;
analyze pmk.pmk_snapshot;
analyze pmk.pmk_snapshot_dbnode_stat;
analyze pmk.pmk_snapshot_datanode_stat;
#我在3.1.1执行sql,结果提示schema "pmk" does not exist,对后续性能检测没影响

3、执行简要性能检查。
[omm@ecs-e1b3 ~]$ gs_checkperf #或者gs_checkperf -i pmk -U omm
Cluster statistics information:
Host CPU busy time ratio : 1.66 % -----主机CPU占用率
MPPDB CPU time % in busy time : 2.51 % ----Gauss CPU占用率
Shared Buffer Hit ratio : 99.14 % ----共享内存命中率
In-memory sort ratio : 0 ---内存中排序比率
Physical Reads : 504 ---物理读次数
Physical Writes : 162 ---物理写次数
DB size : 57 MB ---DB大小
Total Physical writes : 162 ---总物理写次数
Active SQL count : 4 ---当前SQL执行数
Session count : 5 ---Session数量

4、执行详细性能检查
[omm@ecs-e1b3 ~]$ gs_checkperf --detail #或者gs_checkperf -i pmk -U omm --detail