Files
oceanbase/docs/docs-cn/13.reference-guide/3.system-configuration-items/121.memory_limit.md
2022-02-10 14:51:49 +08:00

1.8 KiB

memory_limit

memory_limit 表示可用的总内存大小。

属性 描述
参数类型 容量单位
默认值 0
取值范围 [0M, +∞)
是否重启 OBServer 生效

memory_limit 的默认值为 0。如果该值不为 0,则系统会忽略 memory_limit_percentage 的设置而优先使用 memory_limit 配置的值。例如,一台物理机的内存为 100 G,memory_limit_percentage 设置为 80,表示使用 80% 的内存,而 memory_limit 参数设置为 90G,则实际物理机上 OceanBase 数据库可分配的内存使用 memory_limit 的配置,即 90 G。

使用注意事项:

  • memory_limit 的默认单位为 MB。

    例如,memory_limit='40G' 表示设置 OceanBase 数据库进程的使用内存上限是40 GB。由于默认单位为 MB,则 memory_limit=40960 memory_limit='40G' 设置的值相同。

  • memory_limit 的值目前无上限。如果设置的内存最大上限超过了实际的物理内存总和,则会导致系统中其他按总内存计算的值偏大。

  • 如果希望限制运行中的 OceanBase 数据库的内存大小,可以直接修改 memory_limit 的值,使其达到预期。设置后,后台参数 Reload 线程会使其动态生效,无需重启。但是在设置时,需要保证 memory_limit 的值小于系统总 hold 值。

    注意

    memory_limit 的值必须大于 OBServer 实际已使用的内存。

    查询当前已使用的内存数(单位:GB)的方法如下:

    obclient> SELECT value/1024/1024/1024 used_gb FROM v$sysstat WHERE name LIKE '%observer memory%' AND con_id = 1 AND stat_id=140008 AND name='observer memory used size';