Skip to content

GaussDB 集群指标

集群状态指标

节点状态指标

  • 节点状态:集群中各个节点的运行状态

    • 监控方法:使用gs_om工具或查询pg_stat_replication视图
    • 状态值:正常、异常、未知
    • 正常状态:所有节点均为正常状态
  • 节点数量:集群中的节点总数

    • 监控方法:使用gs_om工具或查询系统视图
    • 指标:主节点数、备节点数、级联备节点数
    • 正常范围:符合集群设计的节点数量
  • 节点角色:集群中各个节点的角色

    • 监控方法:查询pg_stat_replication视图或gs_om工具
    • 角色:主节点、同步备节点、异步备节点、级联备节点
    • 正常状态:角色分配符合集群设计

集群健康指标

  • 集群可用性:集群的整体可用状态

    • 监控方法:使用gs_check工具或监控系统
    • 计算方法:可用时间 / 总时间 * 100%
    • 正常范围:应达到99.9%以上
  • 故障转移次数:集群发生故障转移的次数

    • 监控方法:查看数据库日志或集群事件日志
    • 关键字:"failover", "switchover"
    • 正常范围:应尽量少,理想情况为0
  • 集群版本一致性:集群中所有节点的版本是否一致

    • 监控方法:使用gs_om工具
    • 命令:gs_om -t status --detail
    • 正常状态:所有节点版本一致

性能指标

集群吞吐量指标

  • 集群TPS:集群每秒处理的事务数

    • 监控方法:查询所有节点的pg_stat_database视图,求和计算
    • 计算公式:Σ(tup_returned + tup_fetched + tup_inserted + tup_updated + tup_deleted) / 时间间隔
    • 正常范围:根据业务负载而定
  • 集群QPS:集群每秒处理的查询数

    • 监控方法:查询所有节点的pg_stat_database视图,求和计算
    • 计算公式:Σ(xact_commit + xact_rollback) / 时间间隔
    • 正常范围:根据业务负载而定
  • 节点负载均衡:各个节点的负载分布情况

    • 监控方法:比较各个节点的TPS、QPS和资源使用率
    • 指标:负载差异率 = (最大负载 - 最小负载) / 平均负载
    • 正常范围:负载差异率应小于20%

资源使用指标

  • 集群CPU使用率:集群整体的CPU使用率

    • 监控方法:汇总各个节点的CPU使用率
    • 正常范围:通常应小于70%
  • 集群内存使用率:集群整体的内存使用率

    • 监控方法:汇总各个节点的内存使用率
    • 正常范围:根据集群配置而定
  • 集群磁盘使用率:集群整体的磁盘使用率

    • 监控方法:汇总各个节点的磁盘使用率
    • 正常范围:通常应小于80%

复制指标

同步状态指标

  • 复制延迟:备节点与主节点的同步延迟

    • 监控方法:查询pg_stat_replication视图
    • 指标:replay_lsn与主节点current_lsn的差异
    • 正常范围:通常应小于1MB
  • 同步备节点数量:当前同步状态的备节点数量

    • 监控方法:查询pg_stat_replication视图
    • 过滤条件:sync_state = 'sync'
    • 正常范围:根据集群设计而定
  • 复制中断次数:复制连接中断的次数

    • 监控方法:查看数据库日志
    • 关键字:"replication connection lost"
    • 正常范围:应尽量少

复制性能指标

  • WAL发送速率:主节点发送WAL日志的速率

    • 监控方法:查询pg_stat_replication视图
    • 计算公式:(sent_lsn - previous_sent_lsn) / 时间间隔
    • 正常范围:根据业务负载而定
  • WAL接收速率:备节点接收WAL日志的速率

    • 监控方法:查询pg_stat_replication视图
    • 计算公式:(write_lsn - previous_write_lsn) / 时间间隔
    • 正常范围:应与WAL发送速率匹配
  • WAL回放速率:备节点回放WAL日志的速率

    • 监控方法:查询pg_stat_replication视图
    • 计算公式:(replay_lsn - previous_replay_lsn) / 时间间隔
    • 正常范围:应与WAL发送速率匹配

存储指标

集群存储使用指标

  • 集群总存储使用量:集群所有节点的存储使用总量

    • 监控方法:汇总各个节点的存储使用量
    • 正常范围:根据集群存储配置而定
  • 节点存储使用分布:各个节点的存储使用情况

    • 监控方法:比较各个节点的存储使用率
    • 指标:存储差异率 = (最大存储使用率 - 最小存储使用率) / 平均存储使用率
    • 正常范围:存储差异率应小于20%
  • 存储增长速率:集群存储使用的增长速率

    • 监控方法:定期收集存储使用数据,计算增长率
    • 计算公式:(当前存储使用量 - 历史存储使用量) / 时间间隔
    • 正常范围:根据业务增长情况而定

表空间使用指标

  • 表空间使用分布:各个表空间的使用情况

    • 监控方法:查询所有节点的pg_tablespace视图
    • 指标:表空间大小、使用率
    • 正常范围:根据表空间配置而定
  • 表空间增长速率:各个表空间的增长速率

    • 监控方法:定期收集表空间使用数据,计算增长率
    • 计算公式:(当前表空间大小 - 历史表空间大小) / 时间间隔
    • 正常范围:根据业务增长情况而定

连接指标

集群连接指标

  • 集群总连接数:集群当前的总连接数

    • 监控方法:汇总各个节点的pg_stat_database视图中的numbackends字段
    • 正常范围:应小于所有节点max_connections之和的80%
  • 节点连接分布:各个节点的连接分布情况

    • 监控方法:比较各个节点的连接数
    • 指标:连接差异率 = (最大连接数 - 最小连接数) / 平均连接数
    • 正常范围:连接差异率应小于20%
  • 连接使用率:集群连接的使用率

    • 监控方法:(当前总连接数 / 总最大连接数) * 100%
    • 正常范围:通常应小于80%

连接状态指标

  • 活跃连接数:集群当前的活跃连接数

    • 监控方法:汇总各个节点的pg_stat_activity视图中的活跃连接数
    • 正常范围:根据业务负载而定
  • 空闲连接数:集群当前的空闲连接数

    • 监控方法:汇总各个节点的pg_stat_activity视图中的空闲连接数
    • 正常范围:应尽量少,可通过设置idle_in_transaction_session_timeout优化

网络指标

节点间网络指标

  • 节点间网络延迟:各个节点之间的网络延迟

    • 监控方法:使用ping命令或网络监控工具
    • 正常范围:通常应小于1ms
  • 节点间网络带宽:各个节点之间的网络带宽使用率

    • 监控方法:使用iostat、sar等工具
    • 正常范围:通常应小于70%
  • 节点间网络丢包率:各个节点之间的网络丢包率

    • 监控方法:使用ping命令或网络监控工具
    • 正常范围:通常应小于0.1%

集群网络流量指标

  • 集群网络总流量:集群整体的网络流量

    • 监控方法:汇总各个节点的网络流量
    • 正常范围:根据集群网络配置而定
  • 节点网络流量分布:各个节点的网络流量分布情况

    • 监控方法:比较各个节点的网络流量
    • 指标:流量差异率 = (最大流量 - 最小流量) / 平均流量
    • 正常范围:流量差异率应小于20%

监控工具和方法

内置监控工具

  • gs_om:集群管理工具,用于查看集群状态

    • 命令:gs_om -t status
    • 功能:查看节点状态、版本信息、集群状态
  • gs_check:集群检查工具,用于检查集群健康状态

    • 命令:gs_check -i cluster
    • 功能:检查节点状态、复制状态、版本一致性
  • *pg_stat_视图:PostgreSQL内置的统计视图

    • 视图:pg_stat_database, pg_stat_replication, pg_stat_bgwriter
    • 功能:提供数据库、复制、后台写入等统计信息

第三方监控工具

  • Prometheus + Grafana:开源监控和可视化工具

    • 功能:收集集群指标,创建可视化仪表盘
    • 优点:灵活、可扩展、支持告警
  • Zabbix:开源监控工具

    • 功能:监控集群状态、资源使用、性能指标
    • 优点:成熟、稳定、支持多种告警方式
  • 华为云监控:Cloud Eye

    • 功能:监控华为云GaussDB集群
    • 优点:与华为云深度集成,支持自动发现

常见问题(FAQ)

Q1: 如何监控集群的整体状态?

A1: 监控集群整体状态的方法:

  1. 使用gs_om工具查看节点状态
  2. 监控集群的TPS、QPS和资源使用率
  3. 监控复制状态和延迟
  4. 监控网络状态和节点间通信
  5. 配置集群级别的告警规则

Q2: 如何判断集群是否负载均衡?

A2: 判断集群负载均衡的方法:

  1. 比较各个节点的TPS、QPS
  2. 比较各个节点的CPU、内存使用率
  3. 比较各个节点的连接数
  4. 计算负载差异率,通常应小于20%
  5. 查看是否有节点负载明显高于其他节点

Q3: 如何监控集群的复制状态?

A3: 监控集群复制状态的方法:

  1. 查询pg_stat_replication视图
  2. 监控复制延迟
  3. 监控WAL发送、接收和回放速率
  4. 监控复制连接状态
  5. 配置复制相关的告警规则

Q4: 如何优化集群性能?

A4: 优化集群性能的方法:

  1. 确保集群负载均衡
  2. 优化数据库参数配置
  3. 优化SQL查询和索引
  4. 确保存储和网络性能
  5. 考虑使用读写分离和分片

Q5: 集群监控的最佳实践是什么?

A5: 集群监控的最佳实践:

  1. 监控关键指标,包括状态、性能、资源使用、复制等
  2. 设置合理的告警阈值
  3. 使用可视化工具展示监控数据
  4. 定期分析监控数据,找出性能瓶颈
  5. 持续优化监控配置和告警规则