异常处理
使用gs_checkperf工具检查openGauss性能状态后,如果发现检查结果发现异常,可以根据以下内容进行修复。
表 1 检查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、进行磁盘整理。 5、降低并发数。 |
事务统计 | 查询pg_stat_activity系统表,将不必要的连接断开。(登录数据库后查询:postgres=# \d+ pg_stat_activity;) |
表 2 检查节点级别性能状态
异常状态 | 处理方法 |
---|
CPU占有率高 | 1、更换和增加高性能的CPU。 2、使用top命令查看系统哪些进程的CPU占有率高,然后使用kill命令关闭没有使用的进程。 top
|
内存使用率过高情况 | 扩大或清理内存。 |
I/O使用率过高情况 | 1、更换高性能的磁盘。 2、进行磁盘清理。 3、尽可能用内存的读写代替直接磁盘I/O,使频繁访问的文件或数据放入内存中进行操作处理。 |
表 3 会话/进程级别性能状态
异常状态 | 处理方法 |
---|
CPU、内存、I/O使用率过高情况 | 查看哪个进程占用CPU/内存高或I/O使用率高,若是无用的进程,则kill掉,否则排查具体原因。例如SQL执行占用内存大,查看是否SQL语句需要优化。 |
表 4 SSD性能状态
异常状态 | 处理方法 |
---|
SSD读写性能故障 | 使用以下命令查看SSD是否有故障,排查具体故障原因。 gs_checkperf -i SSD -U omm
|