异常处理

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

表 1 检查openGauss级别性能状态

异常状态

处理方法

主机CPU占有率高

1、更换和增加高性能的CPU。

2、使用top命令查看系统哪些进程的CPU占有率高,然后使用kill命令关闭没有使用的进程。

  1. top

openGauss CPU占有率高

1、更换和增加高性能的CPU。

2、使用top命令查看数据库哪些进程的CPU占有率高,然后使用kill命令关闭没有使用的进程。

  1. top

3、使用gs_expand工具扩容,增加新的主机均衡CPU占有率。

共享内存命中率低

1、扩大内存。

2、使用如下命令查看操作系统配置文件/etc/sysctl.conf,调大共享内存kernel.shmmax值。

  1. vim /etc/sysctl.conf

内存中排序比率低

扩大内存。

I/O、磁盘使用率高

1、更换高性能的磁盘。

2、调整数据布局,尽量将I/O请求较合理的分配到所有物理磁盘中。

3、全库进行VACUUM FULL操作。

  1. vacuum full;

4、进行磁盘整理。

5、降低并发数。

事务统计

查询pg_stat_activity系统表,将不必要的连接断开。(登录数据库后查询:postgres=# \d+ pg_stat_activity;)

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

异常状态

处理方法

CPU占有率高

1、更换和增加高性能的CPU。

2、使用top命令查看系统哪些进程的CPU占有率高,然后使用kill命令关闭没有使用的进程。

  1. top

内存使用率过高情况

扩大或清理内存。

I/O使用率过高情况

1、更换高性能的磁盘。

2、进行磁盘清理。

3、尽可能用内存的读写代替直接磁盘I/O,使频繁访问的文件或数据放入内存中进行操作处理。

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

异常状态

处理方法

CPU、内存、I/O使用率过高情况

查看哪个进程占用CPU/内存高或I/O使用率高,若是无用的进程,则kill掉,否则排查具体原因。例如SQL执行占用内存大,查看是否SQL语句需要优化。

表 4 SSD性能状态

异常状态

处理方法

SSD读写性能故障

使用以下命令查看SSD是否有故障,排查具体故障原因。

  1. gs_checkperf -i SSD -U omm