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

简介: 不积跬步无以至千里,要想成为一名合格的数据库管理员,首先应该具备扎实的基础知识及问题处理能力。本文参考Pivotal官方FAQ,对在管理Deepgreen & Greenplum时经常会遇到的问题提出解决思路/答案,本篇主要讲性能方面的问题。
不积跬步无以至千里,要想成为一名合格的数据库管理员,首先应该具备扎实的基础知识及问题处理能力。本文参考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.这些孤立进程会引起性能问题吗?
  • 是的,如果这些孤立进程仍然长时间占用锁,势必会影响性能。
关于性能相关的问题先说这么多,由于性能问题原因千奇百怪,并且分析起来比较复杂,我会在以后单独分享某些性能相关的文章,感谢大家~


同系列相关文章:
目录
相关文章
|
传感器 数据采集 算法
基于STM32 上开发的BMS系统
基于STM32 上开发的BMS系统
1170 15
|
Linux C语言 容器
在低版本glibc的环境里运行基于高版本glibc编译的可执行程序
在低版本glibc的环境里运行基于高版本glibc编译的可执行程序
1833 0
【D3.js 学习总结】14、D3布局-打包图
# d3.layout.pack() 打包图用于表示包含与被包含的关系,也可表示各对象的权重,通常用一圆套一圆来表示前者,用圆的大小来表示后者。 #### 打包图(Pack)的API说明 * pack.children - 取得或设置子节点的访问器。 * pack.links - 计算树节点中的父子链接。 * pack.nodes - 计算包布局并返回节点数组。 * pac
2599 0
|
XML 前端开发 JavaScript
React 基础知识 —— JSX | 学习笔记
快速学习 React 基础知识 —— JSX
React 基础知识 —— JSX | 学习笔记
linux4.1.15内核移植到野火PRO开发板开发板
linux4.1.15内核移植到野火PRO开发板开发板
504 0
|
XML 数据格式
CAutoupdater通用自动升级组件
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/8513847  CAutoupdater通用自动升级组件   1、CAutoupdater通用自动升级组件介绍 1.
1296 0
|
开发工具 Windows 程序员
全面解析MFC应用程序框架
对于程序员来说,如果要提高编程效率,一个好用的,功能强大的并且可以得心应手使用的编程工具往往会给我们程序员带来莫大的方便。其实对于现在的编程工具来说,使用哪一种工具都不是问题的关键,重要的是你能够使用到什么程度,毕竟现在的工具都是非常的强大,对于一般的编程任务来说还没有不能够胜任的工具,否则的话恐怕他就不可能在这个世界上存在哪怕是只有一个月的生命。
1294 0
|
6天前
|
缓存 人工智能 安全
GPT-5.6 Terra与GPT-5.5性能实测:成本减半后的跑分对比与快速迁移指南
GPT-5.6 Terra 的定价为每百万 token 输入 2.50/输出 15。GPT-5.5 则是 5/ 30。Terra 的每一项费率,包括 $0.25/M 的缓存读取,都恰好是 GPT-5.5 的一半,因此在任何工作负载组合下,Terra 都固定 便宜 2.0x。以每天 10 万次请求、3K token 提示词计算,大约是 Terra 每天 2,000,GPT−5.5每天 4,000,即每月约 60,000对 120,000。问题在于:OpenAI 没有发布任何针对 Terra 的编码基准。那个著名的 91.9% Terminal-Bench 数字是 Sol 在 Ul