v4版本memstore_limit_percentage值

我看到v4版本参数memstore_limit_percentage值默认变成了20%,v3是70%,这个默认值应对大量变更的系统确实会有好处,但是对于一般情况是否过于保守呢?初始化时是否有必要预先调高一些比较好?

1 个赞

瞎搞~~~这V4代表两个版本阶段,一个是4.2.3之前,memstore_limit_percentage默认是50%,一个是4.2.3之后,memstore_limit_percentage默认0

1 个赞

确实变化比较大,这个不用太纠结,当70%的时候是想尽量的多用内存减少转储次数。
往小的调的话,就会增加转储次数,减少对内存的使用量,估计是有OOM的问题故障多了。
最新版本是0,表示进行自适应调整。未来,参数最终归宿都是自适应。
根据自己的业务类型调整,只有贴合自己业务参数,出厂默认值考虑的都是通用,而不是每个个体的特殊性。

1 个赞

目前OBV4版本中,
1、4.2.3版本memstore_limit_percentage默认值为50
2、4.2分支中,4.2.3版本开始默认值改为0,4.3分支从4.3.0开始默认值为0
3、如果两者均未配置,或均配置为默认值时,系统将采用以下自适应策略:

  • 内存为 8G (真实 Memory)及以下规格的租户,其租户 Memstore 的配置比例为 40%。
  • 内存为 8G 以上规格的租户,其租户 Memstore 的配置比例为 50%。

4、如果写入负载高的场景可以适当调大百分比,其他场景默认值即可。

freeze_trigger_percentage 这个参数默认20%,不好意思,我贴错了。

我理解,freeze_trigger_percentage默认为20,是为了适应更高的写入压力场景。
压力小的场景,可以适当调大比如30-50,减少转出频率和性能开销。
压力大的场景,可以使用默认值。

@论坛小助手

根据文档库中的信息,memstore_limit_percentage 的默认值在 V4.3.0 版本中从 50 调整为 0(表示进行自适应调整),而非 20% 或 70%。以下是具体分析:

关于 memstore_limit_percentage

  1. 默认值变化
    根据 [memstore_limit_percentage → 属性说明](相关文档标题: memstore_limit_percentage → 属性说明),V4.3.0 版本开始,默认值由 50 调整为 0,表示系统会根据负载情况自适应调整 MemStore 的内存限制比例。

  2. 是否过于保守
    默认值为 0 是为了更好地适应不同业务场景。如果业务写入压力较大,系统会动态分配更多内存给 MemStore;而在写入压力较小时,则减少内存占用以优化资源利用率。因此,默认值并不一定“过于保守”,而是更灵活地适配业务需求。

  3. 是否需要预先调高
    如果您的系统确实存在大量变更操作(如高频写入或更新),可以考虑适当调高该值以避免转储频率过高影响性能。但需要注意以下风险:

    • 如果设置过大,可能会导致转储速度跟不上写入速度,从而引发内存超限问题。
    • 建议结合实际业务场景和监控数据进行调整,并参考 [内存相关参数](相关文档标题: 内存相关参数) 中的建议。

    调整示例:

    ALTER SYSTEM SET memstore_limit_percentage=30;
    

关于 freeze_trigger_percentage

  1. 默认值变化
    根据 [freeze_trigger_percentage → 属性说明](相关文档标题: freeze_trigger_percentage → 属性说明),V4.0.0 版本开始,默认值从 70 调整为 20。这一调整是为了更早触发转储操作,避免 MemStore 占用过多内存。

  2. 是否过于保守
    默认值 20% 确实相对较低,目的是降低内存压力并提高系统稳定性。对于一般业务场景,这一值通常是合理的。但如果您的业务写入量较小且内存资源充足,可以适当调高以减少不必要的转储操作。

  3. 是否需要预先调高
    如果您希望减少转储频率,可以将该值调高至 30% 或 40%,但不建议超过 50%,以免因 MemStore 占用过多内存而影响系统性能。

    调整示例:

    ALTER SYSTEM SET freeze_trigger_percentage=30;
    

综合建议

  • 在初始化时,建议保持默认值以确保系统的稳定性和兼容性。
  • 根据实际业务场景和监控数据,逐步调整相关参数以优化性能。
  • 定期关注系统内存使用情况和转储频率,必要时可参考 [转储和合并](相关文档标题: 转储和合并) 和 [自动触发合并](相关文档标题: 自动触发合并) 进行进一步优化。

如果您仍有疑问,建议联系 OceanBase 的人工答疑团队获取更详细的指导。

更多信息请查看:

  1. V3.x 与 V4.x 配置项和系统变量变更
  2. freeze_trigger_percentage
  3. writing_throttling_trigger_percentage
  4. log_restore_concurrency
  5. memstore_limit_percentage
  6. 内存相关参数