注册
DM9 新特性探索之回滚表空间回收机制对比DM8基线版测试验证_最佳实践【#达梦数据库 #达梦同行者征文】
专栏/技术分享/ 文章详情 /

DM9 新特性探索之回滚表空间回收机制对比DM8基线版测试验证_最佳实践【#达梦数据库 #达梦同行者征文】

羽书飞影 2026/09/04 164 2 0
摘要

一、测试背景

达梦数据库(DM)在回滚页管理上经历了三个阶段的演进:

  • DM4 ~ DM6:多个事务共用回滚页,高并发场景下回滚页并发存在冲突现象。
  • DM7 / DM8:每个事务独占使用回滚页,解决了并发冲突,但空间浪费现象。
  • DM9:允许多个事务共用一个回滚页,但仅允许一个活动事务使用,平衡并发效率与回滚页空间利用率。

二、测试目标

image.png

三、测试环境

项目: 规格
CPU: 飞腾S5000C 160c
内存: 1T
磁盘: NVME 3.5T
操作系统: 麒麟V10
DM 版本: DM8.1.3.26 P60(基线) DM8.1.5.8 P4(基线) DM9.1.0.26(验证)
测试工具: Benchmask5.0

四、自变量控制

image.png

五、测试用例明细

5.1 100仓/100并发/10分钟

TC-01:DM8.1.3.26 + undo_retention=10
image.png
测试结果
–ROLL.DBF初始值:512MB
image.png
–ROLL.DBF测试完成值:2.4G
image.png
–TpmC值:118530
image.png
image.png
TC-02:DM8.1.5.8 + undo_retention=10
image.png
测试结果
–ROLL.DBF初始值:192MB
image.png
–ROLL.DBF测试完成值:960MB
image.png
–TpmC值:104752
image.png
TC-03:DM9 + undo_retention=10
image.png
测试结果
–ROLL.DBF初始值:128MB
image.png
–ROLL.DBF测试完成值:896MB
image.png
–TpmC值:106740
image.png
TC-04:DM8.1.3.26 + undo_retention=90
image.png
==测试结果 ==
–ROLL.DBF初始值:512MB
image.png
–ROLL.DBF测试完成值:13G
image.png
–TpmC值:112597
image.png
TC-05:DM8.1.5.8+ undo_retention=90
image.png
测试结果
–ROLL.DBF初始值:128MB
image.png
–ROLL.DBF测试完成值:960MB
image.png
–TpmC值:121366
image.png
TC-06:DM9 + undo_retention=90
image.png
**测试结果 **
–ROLL.DBF初始值:128MB
image.png
–ROLL.DBF测试完成值:1.6G
image.png
–TpmC值:102490
image.png
TC-07:DM8.1.3.26 + undo_retention=180
image.png
测试结果
–ROLL.DBF初始值:512MB
image.png
–ROLL.DBF测试完成值:24G
image.png
–TpmC值:113576
image.png
TC-08:DM8.1.5.8+ undo_retention=180
image.png
测试结果
–ROLL.DBF初始值:128MB
image.png
–ROLL.DBF测试完成值:2.4G
image.png
–TpmC值:109136
image.png
TC-09:DM9 + undo_retention=180
image.png
**测试结果 **
–ROLL.DBF初始值:128MB
image.png
–ROLL.DBF测试完成值:2.2G
image.png
–TpmC值:119355
image.png

5.2 200仓/100并发/10分钟

5.2测试步骤同上述5.1,不一一例举。
image.png

5.3 500仓/100并发/10分钟

5.3测试步骤同上述5.1、5.2,不一一例举。
image.png

六、关键监控指标

image.png

七、测试步骤

阶段一:基线数据采集(DM8.1.3.26/DM8.1.5.8)

  • 安装部署 DM8.1.3.26/DM8.1.5.8,配置 undo_retention = 10,重启实例确认生效
  • 清空所有缓存,预热缓冲池
  • 启动 TPCC 负载,运行 10分钟;每 30 秒记录回滚表空间大小
  • 记录稳态后回滚表空间峰值、tpmC 均值
  • 重复步骤 1~4,依次将 undo_retention 改为 90、180

阶段二:DM9 验证

  • 升级/安装 DM9,保持参数与阶段一一致
  • 重复阶段一步骤,依次测试 undo_retention = 10 / 90 / 180
  • 记录各组测试结果

阶段三:数据分析与报告

  • 整理所有组数据,计算各场景回收比例
  • 绘制对比图表(柱状图:回滚表空间大小对比;折线图:增长趋势)
  • 分析 undo_retention 增大后 DM9 回收优势是否仍能保持

八、通过标准

image.png

九、测试总结

9.1 100仓/100并发/10分钟

image.png
测试总结:

  • DM 8.1.3.26:ROLL.DBF 随 undo_retention 增大呈线性膨胀,从 2.4G 增至 26G,增幅约 10.8 倍,参数敏感度最高
  • DM 8.1.5.8:undo=10 至 90 无明显变化(0.94G),undo=180 升至 2.4G,整体增长平缓
  • DM 9.1.0.26:趋势与 8.1.5.8 相似,从 0.87G 缓慢增至 2.2G,增幅约 2.5 倍

image.png

9.2 200仓/100并发/10分钟

image.png
测试总结:
从数据可以看出:

  • 8.1.3.26 版本的 ROLL.DBF 随 undo_retention 增长呈显著上升趋势(2.5G → 13G → 26G)
  • 8.1.5.8 和 9.1.0.26 的增长幅度相对平缓,在 undo_retention=180 时远小于 8.1.3.26
  • 9.1.0.26 在各 undo_retention 水平下的 ROLL.DBF 略大于 8.1.5.8,但两者差异不大

image.png

9.3 500仓/100并发/10分钟

image.png
测试总结:

  • DM 8.1.3.26:ROLL.DBF 随 undo_retention 增大呈显著线性膨胀,从 2.1G 增至 24G,增幅约 11 倍,参数敏感度高。
  • DM 8.1.5.8 / DM 9.1.0.26:增长平缓,undo=10 时约 0.9G,undo=180 时仅约 2G,参数敏感度远低于 8.1.3.26。

image.png

9.4 测试结论

  1. DM 8.1.3.26 的 ROLL.DBF 随 undo_retention 增大呈显著线性膨胀,增长率约为 9.1.0.26 的 16 倍;undo_retention 每增加 1 个单位,ROLL.DBF 约增长 130 MB。
  2. DM 9.1.0.26 ROLL.DBF 随 undo_retention 增大基本保持平稳,增长率极低(约 8 MB/unit),参数调大后空间几乎不膨胀。
  3. 三个仓数场景下(100仓 / 200仓 / 500仓)两版本的差距趋势一致,说明该差异具有稳定性,不受仓数规模影响。
  4. 仓数增大时 8.1.3.26 的 undo=10 基准值反而略有下降(2.5G→2.1G),可能与更大数据量下事务分布差异有关,但总体涨幅倍数基本稳定。

十、注意事项

每轮测试后进行一次环境清理,不同undo_retention 场景间必须重启实例,防止残留 undo 数据干扰数据采集时机:回滚表空间在前 0~5 分钟内快速增长,务必等到 5 分钟达到稳态后再取峰值参数一致性:除 undo_retention外,其他UNDO_SEGMENTS、BUFFER、MAX_SESSIONS 等参数在所有测试中保持一致。

【#达梦数据库 #达梦同行者征文】

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服