首批通过分布式安全可靠测评,为关键业务系统打造
ob_host_mem_percent_over_threshold OB 服务器内存使用率超限
更新时间:2026-04-14 11:55:54
告警描述
OBServer 节点所在服务器的物理内存整体使用率超过阈值则触发该告警。
告警原理
下表列出了该告警监控逻辑中涉及的关键参数。
| 参数 | 值 |
|---|---|
| 监控指标 | ob_host_mem_percent |
| 数据来源 | 通过 node_exporter 进程采集。 |
| 采集指标 | node_memory_MemFree_bytes、node_memory_Cached_bytes、node_memory_Buffers_bytes、node_memory_MemTotal_bytes |
| 监控表达式 | (1 - (avg(node_memory_MemFree_bytes{@LABELS}) by (@GBLABELS) + avg(node_memory_Cached_bytes{@LABELS}) by (@GBLABELS) + avg(node_memory_Buffers_bytes{@LABELS}) by (@GBLABELS)) / avg(node_memory_MemTotal_bytes{@LABELS}) by (@GBLABELS)) * 100 |
| 采集周期 | 1 秒 |
说明
该告警的指标来源相对特殊,由 OCP-Agent 通过 node_exporter 采集监控数据。
监控指标 ob_host_mem_percent 的值表示 OBServer 节点内存使用率,当使用率大于阈值(默认为 90%)时触发告警。
规则信息
| 监控指标 | 默认阈值(单位:%) | 持续时间 | 告警周期 | 消除周期 |
|---|---|---|---|---|
| ob_host_mem_percent | 95:严重 97:停服 |
0 秒 | 60 秒 | 5 分钟 |
告警信息
| 告警触发方式 | 告警等级 | 范围 |
|---|---|---|
| 基于监控指标的表达式 | 严重 | 服务器 |
告警模板
告警概述模板:${alarm_target} ${alarm_name}
告警详情模板:集群:${ob_cluster_name},主机:${host},告警:${alarm_name},内存使用率 ${value_shown} 超过 ${alarm_threshold} %
告警概述样例:ob_cluster=obcluster-1:svr_ip=xxx.xxx.xxx.xxx OB 服务器内存使用率超限
告警详情样例:集群:obcluster-1,主机:xxx.xxx.xxx.xxx,告警:OB 服务器内存使用率超限,内存使用率 91 % 超过 90 %
对系统的影响
服务器内存不足时,OBServer 节点无法正常工作。
可能原因
非 observer 进程执行其他内存密集的任务。
OBServer 节点运行异常导致,如 500 租户内存超限等。
处理方法
确认 OBServer 节点状态正常。
在集群 总览 页的 OBServer 列表 中查看该服务器的状态,或者连接该 OceanBase 集群的 sys 租户执行如下 SQL 语句。
select status from __all_sever where svr_ip='your server ip';若状态为 inactive,则尝试重启 observer 进程。
若状态为 "运行中",则为其他问题,请继续执行下一步。
确认超限内存是否因为日常业务使用。
在 OCP 的主机界面找到告警的 OBServer 节点的主机并进入详情页,选择 监控 > 主机资源 ,在该界面查看内存折线图。
若内存使用在告警时间点是突然升高,则非日常业务使用。请继续执行下一步进行排查。
若内存使用在告警时间点是缓慢升高,则是日常业务需要。
参考 替换 OBServer 节点, 替换成内存更大的 OBServer 节点。
执行如下命令行,确认占用内存较多的进程。
#查找内存占用最高的5个进程,按占用率从高到低排序 ps -o %mem,pid,cmd -ax | sort -rn | head -5如果不是 observer 进程占用内存过多,分析对应程序内存占用高的原因。
若不影响业务,可先将占用内存过多的进程停止。
如果是 observer 进程占用内存过多,可能是 OBServer 节点运行异常导致。
此时常会伴随 ob_tenant500_mem_hold_over_threshold OB 500 租户的占用内存大小超限 的告警上报,可先解决该告警。5 分钟后再观察本节告警是否自动清除。