通过openGauss提供的检查数据库性能性能统计工具gs_checkperf进行查看,对应语法:gs_checkperf -i pmk -U (-i:指定检查项编号,-i参数值不区分大小写。格式:-i PMK、-i SSD; - U: 运行的用户名称)
如下可参考(常规 *** 作,比较基础, 建议具体情况具体分析):
1、主机CPU占有率高:
1)更换和增加高性能的CPU。
2)使用top命令查看系统哪些进程的CPU占有率高,然后使用kill命令关闭没有使用的进程。
2、openGauss 节点CPU占有率高:
1)更换和增加高性能的CPU。
2)使用top命令查看数据库哪些进程的CPU占有率高,然后使用kill命令关闭没有使用的进程。
3)使用gs_expand工具扩容,增加新的主机均衡CPU占有率。
3、会话/进程中,CPU、内存、I/O使用率过高:
查看哪个进程占用CPU/内存高或I/O使用率高,若是无用的进程,则kill掉,否则排查具体原因。例如SQL执行占用内存大,查看是否SQL语句需要优化。
……
这种问题要回答好要求知识比较全面。1 从 *** 作系统层次上看
看CPU 内存 swqp(交换分区)等使用率
2 从磁盘上看
主要看磁盘读写。可以用dd测磁盘读写的速度 也可以在业务高峰期检测磁盘的速率。
3 从数据库本身来看。
先要看数据库各个参数的值 。 如sga的大小,process的大小,redo日志的个数与大小等这些关系到性能的参数是否设置合理。
长期观察的方式就是看各个时期的AWR报告。里面有各种性能指标,以及按执行时间或资源排列的sql ,以及各种等待时间的排名。从这里面可以掌握数据库的长期的性能变化。
即时观察的方式就是利用各种sql 查询 数据库在当前时间的各个性能指标(AWR报告里面的各种指标也都是通过sql查询出来的)
还有对数据库整体的一个检查:
如 表的大小,表是否需要分区而没有分区,索引是否创建,索引是否失效,开发人员写的sql是否正确使用到了索引,频繁使用的sql是否有绑定变量,有频繁大批量增删改的表是否存在高水位。。。
额 总之,这个话题涉及的知识非常多,尽可能多的学习一些东西,祝你好运。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)