Deepgreen & Greenplum DBA小白普及课之四(性能问题解答)

不积跬步无以至千里,要想成为一名合格的数据库管理员,首先应该具备扎实的基础知识及问题处理能力。本文参考Pivotal官方FAQ,对在管理Deepgreen & Greenplum时经常会遇到的问题提出解决思路/答案,本篇主要讲性能方面的问题。希望对大家有所帮助,如果有朋友有更多的问题分享,请留言,我将一并整理。

1.我的SQL查询昨天性能还不错,到今天就变得非常慢了,我该怎么办?

  • 如果你的SQL不是在数据库Master主机上执行了,是远程执行的,那么可以通过在Master主机上执行SQL看返回是否正常来定位该远程连接有没有问题。
  • 检查相关系统表及用户表是否存在过度膨胀或者数据倾斜问题。具体操作参见toolkit相关文档。
  • 检查一下内部交换网络是否仍能正常工作。

可以使用gpcheckperf工具或者在内部交换网络之间执行netstat -i来查看丢包率来定位。另外也有可能某个节点的硬件出现了问题,可以通过dmesg命令或者查看/var/log/message*下的日志来定位。

2.如何计算一个SQL运行多长时间?

  • 可以在SQL运行之前使用\timing命令来开启计时。
  • 可以为该SQL执行explain analyze命令来查看执行时长。

3.如何追踪Segment服务器上的子进程?

当会话在Master和Segment之间开启时,所有子进程都会根据Master上的session_id信息进行定义( con+sess_id)。

例如主节点session_id为76134:

gpdb=# select * from pg_Stat_activity;
 datid " datname " procpid " sess_id ".. ..
-------+---------+---------+---------+
 16986 " gpdb    "   18162 "   76134 " .. ..

所有Segment上与76134相关的子节点为:

[gpadmin@stinger2]/export/home/gpadmin/gp40>gpssh -f host_file /usr/ucb/ps -auxww "grep con76134
[stinger2] gpadmin  18162  1.7  6.0386000124480 ?        S 09:57:55  0:04 postgres: port  4000, gpadmin gpdb [local] con76134 [local] cmd3 CREATE DATABASE.......................................
[stinger2] gpadmin  18625  0.3  2.726056455932 ?        S 10:01:56  0:01 postgres: port 40000, gpadmin gpdb 10.5.202.12(18864) con76134 seg0 cmd4 MPPEXEC UTILITY...............................
[stinger2] gpadmin  18669  0.0  0.1 3624  752 pts/2    S 10:02:36  0:00 grep con76134
[stinger3] gpadmin  22289  0.8  9.4531860196404 ?        S 09:36:20  0:05 postgres: port 40000, gpadmin gpdb 10.5.202.12(18866) con76134 seg1 cmd4 MPPEXEC UTILITY...............................

4.如何检查我的查询是正在进行还是在等待锁?

  • 可以通过检查pg_stat_activity视图的waiting列状态,或者查看pg_locks视图的granted列来判断。

5.当系统变慢或者挂起的时候,那种状态的锁是我们需要关注的?

  • 我们需要关注那种锁被唤起很长时间,许多查询都在等待该锁释放的情况。

6.什么是孤立进程?

  • 孤立进程是指某个没有子进程或者同伴进程的进程。

7.这些孤立进程会引起性能问题吗?

  • 是的,如果这些孤立进程仍然长时间占用锁,势必会影响性能。

关于性能相关的问题先说这么多,由于性能问题原因千奇百怪,并且分析起来比较复杂,我会在以后单独分享某些性能相关的文章,感谢大家~

同系列相关文章:

Deepgreen & Greenplum DBA小白普及课之一(一般问题解答)

Deepgreen & Greenplum DBA小白普及课之二(管理问题解答)

Deepgreen & Greenplum DBA小白普及课之三(备份问题解答)

时间: 2024-08-30 08:31:15

Deepgreen & Greenplum DBA小白普及课之四(性能问题解答)的相关文章

Deepgreen & Greenplum DBA小白普及课之一(一般问题解答)

不积跬步无以至千里,要想成为一名合格的数据库管理员,首先应该具备扎实的基础知识及问题处理能力.本文参考Pivotal官方FAQ,对一些在使用和管理Deepgreen & Greenplum时经常会遇到的普通问题进行解答.希望对大家有所帮助,如果有朋友有更多的问题分享,请留言,我将一并整理. 下面单刀直入,开始问题浏览及解决思路梳理: 1.如何检查一张表的分区策略? 测试表:region 表的详细描述信息可以展示其分区策略:Distributed by: (r_regionkey) tpch=#

Deepgreen & Greenplum DBA小白普及课之二(管理问题解答)

不积跬步无以至千里,要想成为一名合格的数据库管理员,首先应该具备扎实的基础知识及问题处理能力.本文参考Pivotal官方FAQ,对在管理Deepgreen & Greenplum时经常会遇到的问题提出解决思路/答案.希望对大家有所帮助,如果有朋友有更多的问题分享,请留言,我将一并整理. 下面单刀直入,开始问题浏览及解决思路梳理: 1.执行gpstart命令失败了,我该怎么办? 查看gpstart命令在Master执行失败后返回的错误原因: 检查gpstart的启动日志,这里可能存着更详细的信息,

Deepgreen & Greenplum DBA小白普及课之三(备份问题解答)

不积跬步无以至千里,要想成为一名合格的数据库管理员,首先应该具备扎实的基础知识及问题处理能力.本文参考Pivotal官方FAQ,对在管理Deepgreen & Greenplum时经常会遇到的问题提出解决思路/答案,本篇主要讲备份方面的问题.希望对大家有所帮助,如果有朋友有更多的问题分享,请留言,我将一并整理. 1.简单描述一下Deepgreen & Greenplum的备份架构? 当我们执行全库备份操作时,后台进行了如下操作: 检查备份命令语法 检查备份目录是否存在,如果不存在便创建目录

Deepgreen(Greenplum) DBA常用运维SQL

1.查看对象大小(表.索引.数据库等) select pg_size_pretty(pg_relation_size('$schema.$table')); 示例: tpch=# select pg_size_pretty(pg_relation_size('public.customer')); pg_size_pretty ---------------- 122 MB (1 row) 2.查看用户(非系统)表和索引 tpch=# select * from pg_stat_user_tab

Deepgreen & Greenplum 高可用(一) - Segment节点故障转移

尚书中云:惟事事,乃其有备,有备无患.这教导我们做事一定要有准备,做事尚且如此,在企事业单位发展中处于基础地位的数据仓库软件在运行过程中,何尝不需要有备无患呢? 今天别的不表,主要来谈谈企业级数据仓库软件Deepgreen和Greenplum的高可用特性之一:计算节点镜像. 一.首先从理论上来讲,正常Segment节点和他的Mirror是分布在不同主机上的,以防止单点故障导致的数据库访问异常.当正常Segment节点出现故障时,Mirror节点可以自动接管Segment节点的服务,数据库仍然可以

Deepgreen & Greenplum 高可用(二) - Master故障转移

上一篇文章中提到了Segment节点的故障转移,其中主要涉及Mirror添加.故障自动切换.故障修复后balanced到原集群状态,以及一些建议.具体请移步传送门--><Deepgreen & Greenplum 高可用(一) - Segment节点故障转移>. 书接上文,今天来谈一谈Master节点的故障转移. 一.首先从理论上来讲,要达到Master节点的单点保障,Master Standby要与Master部署在不同的服务器上.当Master节点故障时,同步程序停止,此时手

建模工具与Deepgreen/Greenplum的集成(连续更新)

今天测试了一下各个建模工具与Deepgreen/Greenplum的集成,结果会连续发出来. 1.与ERWin集成 目前ERWin还不支持数据库连接到PostgreSQL,Greenplum和Deepgreen. 2.与PowerDesigner集成 目前最新版本的PowerDesigner 16.5 版本,已经集成支持Greenplum4.2版本. 更新于2017年8月22日 PowerDesigner从网上下载的破解版本属于老版本,不支持Greenplum4.2,当然也不支持Deepgree

谈谈Deepgreen(Greenplum)中文编码

很多国内客户对中文编码要求比较苛刻,今天我们来聊聊中文编码问题. 概念 Deepgreen和Greenplum是基于PostgreSQL 8.2版本. PostgreSQL 8.2能够以各种字符集存储文本,比如 ISO-8859 系列和 EUC(扩展 Unix 编码).UTF-8 .Mule 国际编码.缺省的字符集是在使用 initdb 初始化数据库集群的时候选择的.在你创建数据库的时候是可以覆盖这个缺省的.因此,你可以有多个数据库,每个都有不同的字符集. PostgreSQL 8.2只支持以U

Deepgreen/Greenplum删除节点步骤

Greenplum和Deepgreen官方都没有给出删除节点的方法和建议,但实际上,我们可以对节点进行删除.由于不确定性,删除节点极有可能导致其他的问题,所以还行做好备份,谨慎而为.下面是具体的步骤: 1.查看数据库当前状态(12个实例) [gpadmin@sdw1 ~]$ gpstate 20170816:12:53:25:097578 gpstate:sdw1:gpadmin-[INFO]:-Starting gpstate with args: 20170816:12:53:25:0975