首批通过分布式安全可靠测评,为关键业务系统打造
freeze_trigger_percentage
更新时间:2026-03-07 13:41:53
说明
该配置项从 V1.4 版本开始引入。
功能描述
freeze_trigger_percentage 用于设置触发冻结的租户使用 MemStore 内存的阈值百分比。
属性说明
| 属性 | 描述 |
|---|---|
| 参数类型 | Int |
| 默认值 | 20
说明从 V4.0.0 版本开始默认值由 70 调整为 20。 |
| 取值范围 | (0, 100) |
| 是否可修改 | 是,支持通过 ALTER SYSTEM SET 语句修改。 |
| 是否重启 OBServer 节点生效 | 否,设置后立即生效。 |
使用说明
OceanBase 数据库使用 MemStore 来存储最近写入的数据。为了避免内存溢出,系统提供了两个重要的保护机制:
冻结机制:将内存中的数据持久化到磁盘,以释放内存空间。
限流机制:当内存压力过大时,降低写入速度,为释放内存争取时间。
这两个机制通过两个租户级配置项来控制触发时机:
freeze_trigger_percentage(冻结阈值)和 writing_throttling_trigger_percentage(限流阈值)。为了避免因过早限流而导致的性能下降,要求 writing_throttling_trigger_percentage 的值必须大于
freeze_trigger_percentage的值。可以通过如下配置项来调整租户内存中 MemStore 的比例:
当一个租户 Active MemStore 内存的使用量达到
freeze_trigger_percentage * memstore_limit(其中,memstore_limit = 租户内存 * memstore_limit_percentage)时,系统就会自动触发冻结(转储的前置动作),然后再调度转储。转储后,系统就会释放占用的 MemStore 内存。当内存不足时,可以调高
memstore_limit_percentage的取值,并调低freeze_trigger_percentage的取值,从而达到临时扩容和尽快转储释放的效果。其中配置项memstore_limit_percentage用于控制租户内存中可用于 MemStore 写入的比例,默认值为 0,表示租户内存中可用于 MemStore 写入的比例由系统进行自适应调整。
配置示例
设置触发冻结的租户使用 MemStore 内存的阈值百分比为 20。
obclient> ALTER SYSTEM SET freeze_trigger_percentage=20;