1. 首页 > GreenPlum教程 > 正文

GreenPlum教程FG019-GreenPlum性能监控与gpstate实战

本文档风哥主要介绍GreenPlum性能监控与gpstate,包括性能监控概念、监控工具、监控最佳实践、gpstate实战、监控实战、监控案例等内容,风哥教程参考GreenPlum官方文档Administrator Guide、Monitoring the System等内容编写,适合DBA人员在学习和测试中使用。

Part01-基础概念与理论知识

1.1 GreenPlum性能监控概念

性能监控是数据库管理的重要组成部分,通过监控可以及时发现和解决性能问题,保证系统稳定运行。更多视频教程www.fgedu.net.cn

1.1.1 监控目标

GreenPlum监控目标:

1. 系统健康监控
– 节点状态监控
– 进程状态监控
– 网络连接监控
– 磁盘空间监控

2. 性能指标监控
– CPU使用率
– 内存使用率
– I/O性能
– 网络吞吐量

3. 数据库指标监控
– 查询性能
– 连接数
– 锁等待
– 事务状态

4. 业务指标监控
– 查询响应时间
– 并发用户数
– 错误率
– 业务吞吐量

1.2 GreenPlum监控工具

GreenPlum提供了多种监控工具,帮助DBA监控和管理集群。学习交流加群风哥微信: itpux-com

1.2.1 监控工具

GreenPlum监控工具:

1. gpstate
– 查看集群状态
– 检查Segment状态
– 查看Mirror状态
– 基础状态监控

2. gp_toolkit
– 系统视图和函数
– 性能统计信息
– 锁和等待信息
– 空间使用信息

3. gpperfmon
– 性能监控数据库
– 历史数据存储
– 图形化界面
– 告警功能

4. 系统工具
– top、htop
– iostat、vmstat
– netstat、ss
– df、du

5. 第三方工具
– Prometheus + Grafana
– Zabbix
– Nagios
– 自定义脚本

Part02-生产环境规划与建议

2.1 GreenPlum监控最佳实践

风哥提示:监控最佳实践:

  • 建立完善的监控体系
  • 设置合理的告警阈值
  • 定期检查监控数据
  • 保留历史监控数据
  • 定期优化监控策略

Part03-生产环境项目实施方案

3.1 GreenPlum gpstate实战

3.1.1 查看集群状态

# 查看集群基本状态
$ gpstate
20260408:10:00:15:012345 gpstate:mdw:gpadmin-[INFO]:-Starting gpstate
20260408:10:00:15:012345 gpstate:mdw:gpadmin-[INFO]:-Greenplum instance status summary
20260408:10:00:15:012345 gpstate:mdw:gpadmin-[INFO]:——————————————————
20260408:10:00:15:012345 gpstate:mdw:gpadmin-[INFO]:-Master instance = Active
20260408:10:00:15:012345 gpstate:mdw:gpadmin-[INFO]:-Master standby = Active
20260408:10:00:15:012345 gpstate:mdw:gpadmin-[INFO]:-Total segment instance count from metadata table = 4
20260408:10:00:15:012345 gpstate:mdw:gpadmin-[INFO]:-Total segment instance count from gp_segment_configuration= 4
20260408:10:00:15:012345 gpstate:mdw:gpadmin-[INFO]:-Total primary segment count = 2
20260408:10:00:15:012345 gpstate:mdw:gpadmin-[INFO]:-Total mirror segment count = 2
20260408:10:00:15:012345 gpstate:mdw:gpadmin-[INFO]:-Total segment instances running = 4
20260408:10:00:15:012345 gpstate:mdw:gpadmin-[INFO]:-Total segment instances not running = 0

# 查看详细状态
$ gpstate -e
20260408:10:05:15:012345 gpstate:mdw:gpadmin-[INFO]:-Checking segment status
20260408:10:05:15:012345 gpstate:mdw:gpadmin-[INFO]:-All segments are up

# 查看Mirror状态
$ gpstate -m
20260408:10:10:15:012345 gpstate:mdw:gpadmin-[INFO]:-Checking mirror status
20260408:10:10:15:012345 gpstate:mdw:gpadmin-[INFO]:-All mirrors are synchronized

学习交流加群风哥QQ113257174

3.1.2 查看配置信息

# 查看Segment配置
$ gpstate -c
20260408:10:15:15:012345 gpstate:mdw:gpadmin-[INFO]:-Segment configuration
20260408:10:15:15:012345 gpstate:mdw:gpadmin-[INFO]:——————————————————
DBID | Content | Role | Status | Hostname | Port
———+———+——+——–+———————+——-
1 | -1 | p | u | mdw.fgedu.net.cn | 5432
2 | -1 | m | u | smdw.fgedu.net.cn | 5432
3 | 0 | p | u | sdw1.fgedu.net.cn | 40000
4 | 0 | m | u | sdw2.fgedu.net.cn | 50000
5 | 1 | p | u | sdw2.fgedu.net.cn | 40000
6 | 1 | m | u | sdw1.fgedu.net.cn | 50000

# 查看版本信息
$ gpstate -v
20260408:10:20:15:012345 gpstate:mdw:gpadmin-[INFO]:-Greenplum version
20260408:10:20:15:012345 gpstate:mdw:gpadmin-[INFO]:——————————————————
Greenplum Database version: 6.25.3 build commit:1234567

更多学习教程公众号风哥教程itpux_com

3.2 GreenPlum监控实战

3.2.1 使用gp_toolkit监控

# 连接数据库
$ psql -d fgedudb -U fgedu
psql (9.4.26)
Type “help” for help.

fgedudb=>

# 查看当前活动查询
fgedudb=> SELECT
fgedudb-> pid,
fgedudb-> usename,
fgedudb-> application_name,
fgedudb-> state,
fgedudb-> query_start,
fgedudb-> now() – query_start AS duration,
fgedudb-> query
fgedudb-> FROM pg_stat_activity
fgedudb-> WHERE state = ‘active’
fgedudb-> ORDER BY query_start;
pid | usename | application_name | state | query_start | duration | query
——-+———+——————+——–+——————————-+—————–+————————————–
12345 | fgedu | psql | active | 2026-04-08 10:25:15.123456+08 | 00:00:05.123456 | SELECT * FROM fgedu.fgedu_customer…
(1 row)

# 查看锁等待情况
fgedudb=> SELECT
fgedudb-> locktype,
fgedudb-> relation::regclass,
fgedudb-> mode,
fgedudb-> granted,
fgedudb-> pid
fgedudb-> FROM pg_locks
fgedudb-> WHERE NOT granted;
locktype | relation | mode | granted | pid
———-+———-+——+———+—–
(0 rows)

# 查看表空间使用情况
fgedudb=> SELECT
fgedudb-> spcname AS tablespace_name,
fgedudb-> pg_size_pretty(pg_tablespace_size(oid)) AS size
fgedudb-> FROM pg_tablespace;
tablespace_name | size
—————–+———
pg_default | 150 GB
pg_global | 500 MB
fgedutbs | 200 GB
(3 rows)

from GreenPlum视频:www.itpux.com

3.2.2 系统资源监控

# CPU使用率监控
$ top -bn1 | head -20
top – 10:30:00 up 30 days, 2:15, 2 users, load average: 2.50, 2.30, 2.10
Tasks: 250 total, 5 running, 245 sleeping, 0 stopped, 0 zombie
%Cpu(s): 25.0 us, 10.0 sy, 0.0 ni, 60.0 id, 5.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 65536.0 total, 10240.0 free, 45056.0 used, 10240.0 buff/cache
MiB Swap: 16384.0 total, 15360.0 free, 1024.0 used, 20480.0 avail Mem

# 内存使用监控
$ free -h
total used free shared buff/cache available
Mem: 64Gi 44Gi 10Gi 5.0Gi 10Gi 20Gi
Swap: 16Gi 1.0Gi 15Gi

# 磁盘使用监控
$ df -h | grep -E “Filesystem|/data”
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 500G 350G 150G 70% /GreenPlum/fgdata

# I/O性能监控
$ iostat -x 1 3
Linux 5.4.17-2136.308.9.el8uek.x86_64 (mdw) 04/08/2026 _x86_64_ (16 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
25.00 0.00 10.00 5.00 0.00 60.00

Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdb 0.00 10.00 100.00 50.00 10.00 20.00 400.00 2.00 10.00 5.00 15.00 5.00 75.00

Part04-生产案例与实战讲解

4.1 GreenPlum监控案例

4.1.1 自动化监控脚本

# 创建监控脚本
$ cat > /GreenPlum/scripts/fgedu_monitor.sh << 'EOF' #!/bin/bash # fgedu_monitor.sh # from:www.itpux.com.qq113257174.wx:itpux-com # web: http://www.fgedu.net.cn LOG_FILE="/GreenPlum/log/monitor_$(date +%Y%m%d).log" echo "=== GreenPlum Monitor Report - $(date) ===" >> $LOG_FILE

# 1. 检查集群状态
echo “1. Cluster Status:” >> $LOG_FILE
gpstate -e >> $LOG_FILE 2>&1

# 2. 检查磁盘空间
echo “2. Disk Space:” >> $LOG_FILE
df -h | grep -E “Filesystem|/GreenPlum” >> $LOG_FILE

# 3. 检查活动连接
echo “3. Active Connections:” >> $LOG_FILE
psql -d fgedudb -U fgedu -c “SELECT COUNT(*) FROM pg_stat_activity WHERE state = ‘active'” >> $LOG_FILE

# 4. 检查长时间运行查询
echo “4. Long Running Queries:” >> $LOG_FILE
psql -d fgedudb -U fgedu -c “SELECT pid, now() – query_start AS duration, query FROM pg_stat_activity WHERE state = ‘active’ AND now() – query_start > interval ‘5 minutes'” >> $LOG_FILE

echo “=== Monitor Complete ===” >> $LOG_FILE
EOF

# 添加执行权限
$ chmod +x /GreenPlum/scripts/fgedu_monitor.sh

# 配置定时任务(每5分钟执行一次)
$ crontab -e
*/5 * * * * /GreenPlum/scripts/fgedu_monitor.sh

# 测试监控脚本
$ /GreenPlum/scripts/fgedu_monitor.sh
$ cat /GreenPlum/log/monitor_20260408.log
=== GreenPlum Monitor Report – 2026-04-08 10:35:00 ===
1. Cluster Status:
All segments are up
2. Disk Space:
/dev/sdb1 500G 350G 150G 70% /GreenPlum/fgdata
3. Active Connections:
count
——-
5
(1 row)
4. Long Running Queries:
pid | duration | query
—–+———-+——-
(0 rows)
=== Monitor Complete ===

Part05-风哥经验总结与分享

5.1 GreenPlum监控技巧

监控技巧:

1. 监控策略
– 建立完善的监控体系
– 设置合理的告警阈值
– 定期检查监控数据
– 保留历史监控数据

2. 告警设置
– 节点状态告警
– 磁盘空间告警
– 性能指标告警
– 错误日志告警

3. 性能分析
– 分析慢查询日志
– 监控资源使用
– 识别性能瓶颈
– 优化系统配置

4. 最佳实践
– 定期巡检集群
– 监控关键指标
– 及时处理告警
– 保留监控历史
– 定期优化监控策略

本文档介绍了GreenPlum性能监控与gpstate的核心内容,包括监控工具、gpstate使用、监控实战、监控案例等,希望对大家有所帮助。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息