---
title: ocp_monagent 进程频繁因为内存使用超限而重启-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于ocp_monagent 进程频繁因为内存使用超限而重启相关的常见问题和使用技巧，帮助您快速解决ocp_monagent 进程频繁因为内存使用超限而重启的难题。
---
切换语言

- 简体中文
- English

划线反馈

# ocp_monagent 进程频繁因为内存使用超限而重启

更新时间：2026-07-08 08:01

适用版本： V3.2.x 内容类型：Troubleshoot  

## 问题现象

客户在进行性能压测时发现 OBServer 服务器上的 `ocp_monagent` 进程因为内存使用超限而频繁地重启，同时在主机的 `/var/log/messages` 日志中发现如下的日志。

```shell
Feb 26 16:25:00 obs2 kernel: [1749083.671935] memory: usage 2097152kB, limit 2097152kB, failcnt 936089037
Feb 26 16:25:00 obs2 kernel: [1749083.671936] memory+swap: usage 2097152kB, limit 9007199254740988kB, failcnt 0
Feb 26 16:25:00 obs2 kernel: [1749083.671937] kmem: usage 0kB, limit 9007199254740988kB, failcnt 0
Feb 26 16:25:00 obs2 kernel: [1749083.671938] Memory cgroup stats for /ocp_agent/ocp_monagent: cache:0KB rss:2093920KB rss_huge:0KB shmem:0KB mapped_file:4224KB dirty:0KB writeback:0KB swap:0KB inactive_anon:0KB active_anon:2094048KB inactive_file:0KB active_file:0KB unevictable:0KB
Feb 26 16:25:00 obs2 kernel: [1749083.672009] Tasks state (memory values in pages):
Feb 26 16:25:00 obs2 kernel: [1749083.672009] [  pid  ]   uid  tgid total_vm      rss pgtables_bytes swapents oom_score_adj name
Feb 26 16:25:00 obs2 kernel: [1749083.672393] [3276420]     0 3276420   913171   530766  4485120        0             0 ocp_monagent
Feb 26 16:25:00 obs2 kernel: [1749083.672404] oom-kill:constraint=CONSTRAINT_MEMCG,nodemask=(null),cpuset=ocp_monagent,mems_allowed=0,oom_memcg=/ocp_agent/ocp_monagent,task_memcg=/ocp_agent/ocp_monagent,task=ocp_monagent,pid=3276420,uid=0
Feb 26 16:25:00 obs2 kernel: [1749083.672496] Memory cgroup out of memory: Killed process 3276420 (ocp_monagent) total-vm:3652684kB, anon-rss:2096216kB, file-rss:26848kB, shmem-rss:0kB
Feb 26 16:25:01 obs2 kernel: [1749083.848270] oom_reaper: reaped process 3276420 (ocp_monagent), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB

```

这是一段来自 Linux 内核的日志，描述了一个由于内存不足（Out Of Memory，OOM）导致的进程被杀死的情况。具体来说，这个事件发生在 2025 年 2 月 26 日 16:25 左右，在一台名为 obs2 的机器上，一个名为 `ocp_monagent` 的进程因为其所处的 cgroup（控制组）达到了设定的内存限制而被系统终止。

### 关键日志解析

- 内存使用情况。

     - `memory: usage 2097152kB, limit 2097152kB, failcnt 936089037`：显示该 cgroup 下的内存使用量已经达到了其上限 2GB，并且尝试分配更多内存失败的次数非常之多。
     - `memory+swap: usage 2097152kB, limit 9007199254740988kB, failcnt 0`：表明即使考虑了交换分区，实际使用的仍然是 2GB，但这里的限制设置得非常高，实际上不影响当前问题。
     - `kmem: usage 0kB, limit 9007199254740988kB, failcnt 0`：内核直接分配的内存用量为 0，也不是问题的关键。
 - OOM Killer 触发

     - 日志中提到 `oom-kill:constraint=CONSTRAINT_MEMCG,...`，这表示是因为 cgroup 级别的内存限制被触发生效，导致 OOM Killer 启动。
     - `Memory cgroup out of memory: Killed process 3276420 (ocp_monagent)`：明确指出是 `ocp_monagent` 进程因为内存超限而被杀死。
     - 进程的详细信息包括它的虚拟内存大小（total_vm:3652684kB）、匿名页 RSS（anon-rss:2096216kB）、文件映射的 RSS（file-rss:26848kB）等。
 - OOM Reaper

     - `oom_reaper: reaped process 3276420 (ocp_monagent),...`：确认了 OOM Killer 之后，OOM Reaper 清理了被终止的进程所占用的所有资源。

## 问题原因

OCP Agent 进程默认安装的内存使用上限为2GB，当数据库进行压测时，因为性能监控数据较多，收集压力很大，导致 `ocp_agent` 进程内存使用超限。当内存使用超过 2G B时，会被操作系统的 `oom_killer` 自动杀掉。

## 问题的风险及影响

`ocp_monagent` 进程频繁重启，导致 OCP 上性能数据的采集和监控被频繁中断。

## 影响租户

影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。

## 适用版本

OCP Agent V3.2.x 及更高版本。

## 解决方法

以操作系统管理员用户或者具有 `sudo` 权限的用户登陆到 OBServer 服务器上，执行 `/home/admin/ocp_agent/bin/ocp_agentctl config -u monagent.limit.memory.quota=xxx` 来修改 `ocp_monagent` 进程允许使用的内存上限。

示例如下。

```shell
-- 注意：执行完下面的的命令后，需要重启 ocp_agent 才能生效。
[root@observer ~]# /home/admin/ocp_agent/bin/ocp_agentctl config -u monagent.limit.memory.quota=10240MB
{"successful":true,"message":"success","error":""}

-- 重启命令
[root@observer ~]# systemctl restart ocp_agent

-- 可以使用下面的命令来检查修改是否已经生效
[root@observer ~]# cat /sys/fs/cgroup/memory/ocp_agent/ocp_monagent/memory.limit_in_bytes
10737418240

[root@observer ~]# cat /home/admin/ocp_agent/conf/config_properties/common_meta.yaml | grep -A4 monagent.limit.memory.quota
    - key: monagent.limit.memory.quota
      value: 10240MB
      valueType: string
      encrypted: false
      configVersion: "2025-02-26T16:51:33.747+08:00"

```

## 规避方式

无。

Previous

[OCP 的【性能监控】、【SQL诊断】页面没有显示任何监控数据的常见原因](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000004510329)

Next

[OCP 无法对 Meta 集群执行巡检](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000003735576) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
