暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

从人工调优到智能巡航:Auto DOP解锁并行计算自动驾驶模式

原创 OceanBase数据库 2025-04-24
180

在数据量呈指数级增长的当下,企业数据库正面临关键挑战:复杂分析任务渴求更多计算资源以提速响应,但过度扩展并行任务又会触发资源冲突,威胁系统稳定性。传统依赖DBA人工配置并行度的方式,既存在效率瓶颈,更难以匹配瞬息万变的业务负载需求。


伴随企业数字化转型步入攻坚阶段,Auto DOP(Automatic Degree of Parallelism,自动并行度)正成为新一代数据库的核心标配。通过实时监测查询模式、数据集规模和系统资源水位,Auto DOP赋予数据库智能决策能力——犹如精明的"交通调度员",动态调配最优计算资源。无论是实时分析场景、AI模型训练,还是混合负载管理、云资源弹性优化,Auto DOP凭借"智能并行"机制,显著提升了企业数据处理效能。


本文将聚焦解析OceanBase数据库中,Auto DOP的核心参数配置、运行状态监控及其在AP场景、AP+TP混合部署场景下的实践应用,助力数据库突破资源竞争困境,达成复杂查询毫秒级响应,确保系统持续高效运转。

一、Auto DOP 核心参数解析

Auto DOP 在很大程度上解决了以往 DBA 需要手动设置并行度带来的不便。在实际生产环境中,运用这一技术仅需两步操作:

👉 首先,需要根据服务器的硬件性能,综合考量可接受的复杂查询对系统资源的占用比例,据此设置并行度上限,例如:set parallel_degree_limit = 32;

👉 然后,打开 Auto DOP:set parallel_degree_policy = AUTO。


在设置 Auto DOP 的过程中,有几个关键参数,分别是资源管控参数 parallel_servers_target、parallel_degree_limit 以及执行优化层参数 parallel_min_scan_time_threshold。


1、parallel_servers_target

parallel_servers_target 属于租户级别的系统变量,它明确规定了租户在每个节点上可申请的并行执行线程数量。其默认值是 MIN CPU * px_workers_per_cpu_quota。当这个参数指定的线程资源耗尽时,后续发起的并行执行请求需要进入排队等待的状态,直至有可用资源释放。

图片

2、parallel_degree_limit

parallel_degree_limit 主要用于约束 Auto DOP 开启时,单条 SQL 语句所能达到的最大并行度,默认值为 0。当这个参数为 0 时,系统会自动借助 CPU 资源状况和 parallel_servers_target 的设定,共同限制最大 DOP 值。


例如,当 parallel_degree_limit = 0 时,若 parallel_servers_target = 10,且通过 OceanBase.V$OB_UNITS 查询得知 min_cpu = 2,同时单条 SQL 查询所读取的两个分区分布在 2 台 OBServer 上,那么经过计算,该场景下最大可用 DOP 为 min(10, 2 * 2) = 4。

图片

3、parallel_min_scan_time_threshold

parallel_min_scan_time_threshold 以毫秒(为单位ms),默认值设置为 1000 ms,该参数对并行度的调整有着直接影响。具体来说,当基表的扫描代价高于该参数设定的值时,系统就会自动开启并行处理模式。


假如适当调小 parallel_min_scan_time_threshold 的值,可以降低基表开启并行处理的门槛,使得评估执行时间更短的基表扫描也能被纳入并行处理范畴。对于已经处于并行处理状态且数据量固定的表,也会相应地提升并行度,采用更大规模的并行扫描策略,以进一步优化处理效率。例如:

图片
图片

二、Auto DOP 执行状态监测

在实际应用过程中,准确监测 Auto DOP 的执行状态对于开发者优化数据库性能、精准定位问题至关重要。OceanBase 提供了系统视图特征码解析以及内置 XPlan 工具包这两大工具,助力开发者快速锁定并行策略的执行轨迹,实现对资源调度的精准验证。


方法一:通过查询 $OB_PLAN_CACHE_PLAN_STAT 中的 OUTLINE_DATA 字段,判断其中是否包含 PARALLEL(AUTO) ,以此来确定相关执行策略是否启用了 Auto DOP。

图片

方法二:通过 explain extended 指令或使用 dbms_xplan.display_cursor(强烈推荐开发者体验,该函数在分析性能问题方面效果显著),同样能够获取关于 Auto DOP 执行状态的详细信息。

图片

三、Auto DOP 最佳场景实践

1、AP 场景

在纯 AP 场景下,业务需求主要聚焦于运行少量极为复杂的大查询,几乎不存在急需优先处理的 DML 操作以及小查询任务。此时,运用 Auto DOP 的方法极为简便:


第一步,结合服务器硬件性能,综合权衡可接受的复杂查询对资源的占用比重,设置合理的并行度上限。例如:set parallel_degree_limit = 32;


第二步,轻松开启 Auto DOP 功能:set parallel_degree_policy = AUTO;


2、AP+TP 混布场景

在 AP+TP 混布的复杂场景中,Auto DOP 旨在优化慢 SQL 的 RT(run time),但这一过程不可避免地会占用更多的线程资源,可能会引发少量 AP 大查询和大量 TP 小查询(小 DML)之间的资源争用。AP 慢查询如果借助 Auto DOP 开启大量线程并行执行,会在一定程度上挤压分配给小查询的系统资源。


Auto DOP 并非万能,它本身无法自动感知用户心中对 SQL 优先级的设定,因此需要人为介入,明确告知数据库不同 SQL 的优先级。具体解决方法是在租户内部,为小查询和大查询分别规划独立的资源组,巧妙借助资源组(resource group)实现资源隔离。


OceanBase 在租户内支持 User 级和 SQL 级两种粒度的资源隔离方式。通过灵活配置各个 Resource Group 的 Max CPU 参数,即可实现让不同 User 或者不同类型的 SQL 按需使用不同资源组的资源,有效缓解资源竞争压力,保障各类业务稳定、高效运行。


Auto DOP 技术构建了一套完整且高效的并行执行优化体系,无论是在纯 AP 场景下对复杂查询效率的极致追求,还是在 AP+TP 混布场景中巧妙化解资源争用难题,Auto DOP 都展现出了卓越的性能优势与强大的适应性。OceanBase 也将不断优化产品技术细节,为企业数字化转型的深入推进提供坚实有力的数据支撑!


5 月 17 日,OceanBase 将在广州召开 2025 开发者大会,本届大会以「当 SQL 遇见 AI」为主题,将重磅发布面向 AI 时代的一体化产品矩阵,并分享 TP、AP、KV 及 AI 能力的最新实践成果。欢迎大家扫码,报名参会!

图片

扫码报名

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论