Leckun
2025 年5 月 30 日 12:02
#1
【 使用环境 】测试环境
【 OB or 其他组件 】
OBServer
5.7.25-OceanBase_CE-v4.3.5.0
OCP Express
版本号: 4.2.2-20240108
发布日期: 2024年1月11日
【问题描述】
memory_limit原值为9G,通过ocp express管理界面修改的值memory_limit=0M后,使用memory_limit_percentage是正常的,但有时候memory_limit突然自己变回9G,例如observer重启后,又会自动恢复9G
就会出现如下图所示的情况
3 个赞
辞霜
2025 年5 月 30 日 12:11
#3
ocp express当前已经不建议部署了 该组件会在六月份下掉,建议部署ocp产品
4 个赞
Leckun
2025 年5 月 30 日 13:51
#4
有些单机部署或者小型3副本部署使用它建下租户和看下资源情况还是挺方便的,单独部署ocp完整版太重了又多了一项运维工作
4 个赞
Leckun
2025 年5 月 30 日 13:52
#5
而且这个设置memory_limit后是生效的,只是后来observer自己不知道怎么恢复了初始的值,和ocp express应该无关吧
2 个赞
辞霜
2025 年5 月 30 日 13:54
#6
你看一下obd里面memory_limit变化了么。
1 个赞
Leckun
2025 年5 月 30 日 14:04
#7
我用OCP Express改为0M,再在observer 通过SHOW PARAMETERS LIKE ‘memory_limit%’;查是生效的
memory_limit_percentage
INT
80
memory_limit
CAPACITY
0M
1 个赞
辞霜
2025 年5 月 30 日 14:21
#8
改参数是生效的,但是obd的yaml文件未进行修改,如果重启会安装obd中yaml文件的参数进行启动。
obd没有探测参数变化的能力所以obd搭建的集群需要使用obd进行修改参数。
2 个赞
Leckun
2025 年6 月 3 日 09:04
#10
那应该如何解决,这配置命令不是全局的吗?我看到另一帖子也是类似提问:
【 使用环境 】测试环境
【 OB使用版本 】4.2.5单机企业版
【问题描述】
通过alter system set memory_limit修改值为30后,重启被还原成了48了???
这个48是一开始安装单机版的时候设置的数值。后续想调整一下,发现无法调整。
使用的命令:
obclient(root@sys)[oceanbase]> alter system set memory_…
辞霜
2025 年6 月 3 日 09:57
#12
obd部署的集群修改参数建议使用obd edit-config xxxx
1 个赞
Leckun
2025 年6 月 3 日 10:05
#13
好的我试下。不过有个疑问,Obd只是部署集群,但重启却又会使用原始参数覆盖?这是不是bug?至少逻辑上有问题吧
辞霜
2025 年6 月 3 日 10:09
#14
使用obd启动集群,,会去读取yaml参数文件来进行启动。这个是因为obd没有主动探测机制。导致非obd修改的参数无法进行持久化,
比如:黑屏化alter修改参数后,可以使用vi修改yaml文件中参数来进行持久化
1 个赞
Leckun
2025 年6 月 5 日 15:05
#15
原因是这个已理解。但逻辑上是不是有问题,通过命令后来修改的memory_limit不是修改到数据库内部了吗?如果使用obd重启集群时会使用初始值再次修改并覆盖掉,是不是obd这个逻辑上有问题还是有bug?
辞霜
2025 年6 月 5 日 15:33
#16
不是bug,也不是逻辑问题。你的obd版本是多少,一般如果启动集群时候参数不匹配是会报错的
Leckun
2025 年6 月 5 日 18:50
#17
OBD版本如下,目前的现象是,重启集群后,它不会立即变回来原来参数,要过一段时间(如1天后)才会变化。例如昨天用obd cluster stop集群后,重启服务器再obd cluster start,昨天刚开始没发现变化,今天发现参数就恢复原来的了。
OceanBase Deploy: 3.2.2
REVISION: 6d098cf70ef6d763ff07db2d8189205f072955a1
BUILD_BRANCH: HEAD
BUILD_TIME: May 13 2025 17:14:15OURCE
Copyright (C) 2025 OceanBase
License Apache 2.0: Apache version 2 or later https://www.apache.org/licenses/LICENSE-2.0 .
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Leckun
2025 年6 月 6 日 10:45
#18
辞霜:
obd edit-config
我用obd edit-config把memory_limit改为0M,加了memory_limit_percent为70,但修改后提示,
[oceanbase-ce] 172.16.0.65: DO NOT decrease memory_limit after startup
Modifications take effect after a redeployment. Are you sure that you want to start a redeployment? [y/n]: y
这样原来数据还在吗?
辞霜
2025 年6 月 6 日 13:48
#19
redeployment相当于重新部署了 数据不会存在了
辞霜
2025 年6 月 6 日 13:58
#21
直接调大memory_limit即可
你想改成memory_limit_percent这种按照内存自适应这种?