Apache Doris 工作负载分析与诊断实战指南
2025-06-27 16:51:23作者:平淮齐Percy
概述
Apache Doris 作为一款高性能的MPP分析型数据库,在实际生产环境中可能会面临各种工作负载问题。本文将深入讲解如何对Doris集群进行工作负载分析与诊断,帮助DBA和运维人员快速定位和解决性能问题。
工作负载分析的两个阶段
1. 运行时工作负载分析
当集群可用性下降时,可以通过以下步骤进行实时诊断:
1.1 确定集群瓶颈
- 通过监控指标初步判断当前集群瓶颈:内存、CPU还是IO
- 如果多项指标都高,建议优先处理内存问题
1.2 定位高负载工作组
- 查询
workload_group_resource_usage表 - 根据瓶颈类型找出资源消耗最高的N个工作组
1.3 实施应急措施
- 降低高负载工作组的查询并发度
- 根据瓶颈类型采取不同降级策略:
- CPU瓶颈:设置
cpu_hard_limit硬限制并降低其值 - IO瓶颈:通过
read_bytes_per_second限制最大IO - 内存瓶颈:设置
memory_limit硬限制并降低其值(可能导致查询失败)
- CPU瓶颈:设置
1.4 深入分析原因
- 判断是工作组整体查询并发增加还是特定大查询导致
- 使用
backend_active_tasks和active_queries表定位异常SQL - 通过
kill语句终止问题查询释放资源
2. 历史数据分析
通过审计日志分析历史工作负载模式:
2.1 确认历史瓶颈
- 分析监控历史数据确定集群瓶颈类型
2.2 识别异常SQL
- 有明确预期:根据业务特点定义异常SQL标准
- 无明确预期:使用百分位函数计算历史基准值
- 计算历史tp50/tp75/tp99/tp999等指标
- 对比当前值与历史基准的偏差
2.3 优化异常查询
- SQL重写
- 表结构优化
- 并行度调整
2.4 流量分析
- 检查SQL执行量是否异常增长
- 确认上游业务变化情况
- 考虑集群扩容或实施限流
实用SQL查询示例
1. 工作组资源使用排名
select be_id,workload_group_id,memory_usage_bytes,cpu_usage_percent,local_scan_bytes_per_second
from workload_group_resource_usage
order by memory_usage_bytes,cpu_usage_percent,local_scan_bytes_per_second desc
2. CPU消耗TopN查询
select
t1.query_id as be_query_id,
t1.query_type,
t2.query_id,
t2.workload_group_id,
t2.`database`,
t1.cpu_time,
t2.`sql`
from
(select query_id, query_type,sum(task_cpu_time_ms) as cpu_time
from backend_active_tasks group by query_id, query_type) t1
left join active_queries t2
on t1.query_id = t2.query_id
order by cpu_time desc limit 10;
3. 内存消耗TopN查询
select
t1.query_id as be_query_id,
t1.query_type,
t2.query_id,
t2.workload_group_id,
t1.mem_used
from
(select query_id, query_type, sum(current_used_memory_bytes) as mem_used
from backend_active_tasks group by query_id, query_type) t1
left join active_queries t2
on t1.query_id = t2.query_id
order by mem_used desc limit 10;
4. 扫描数据量TopN查询
select
t1.query_id as be_query_id,
t1.query_type,
t2.query_id,
t2.workload_group_id,
t1.scan_rows,
t1.scan_bytes
from
(select query_id, query_type, sum(scan_rows) as scan_rows,sum(scan_bytes) as scan_bytes
from backend_active_tasks group by query_id,query_type) t1
left join active_queries t2
on t1.query_id = t2.query_id
order by scan_rows desc,scan_bytes desc limit 10;
注意事项
active_queries表记录FE上的查询,backend_active_tasks表记录BE上的查询- 并非所有查询都会在FE上注册(如stream load)
- SELECT查询在两个表中的queryId相同
- stream load在
active_queries中的queryId为空,在backend_active_tasks中为stream load ID
最佳实践建议
- 定期分析审计日志,建立工作负载基线
- 为关键业务配置独立的工作组
- 设置合理的资源限制和排队策略
- 对异常查询建立自动告警机制
- 保留足够的历史监控数据用于对比分析
通过系统性的工作负载分析和诊断,可以有效提升Apache Doris集群的稳定性和性能表现。
登录后查看全文
热门项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0153- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
LongCat-Video-Avatar-1.5最新开源LongCat-Video-Avatar 1.5 版本,这是一款经过升级的开源框架,专注于音频驱动人物视频生成的极致实证优化与生产级就绪能力。该版本在 LongCat-Video 基础模型之上构建,可生成高度稳定的商用级虚拟人视频,支持音频-文本转视频(AT2V)、音频-文本-图像转视频(ATI2V)以及视频续播等原生任务,并能无缝兼容单流与多流音频输入。00
auto-devAutoDev 是一个 AI 驱动的辅助编程插件。AutoDev 支持一键生成测试、代码、提交信息等,还能够与您的需求管理系统(例如Jira、Trello、Github Issue 等)直接对接。 在IDE 中,您只需简单点击,AutoDev 会根据您的需求自动为您生成代码。Kotlin03
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0112
热门内容推荐
最新内容推荐
项目优选
收起
暂无描述
Dockerfile
733
4.75 K
Ascend Extension for PyTorch
Python
649
795
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
434
395
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.01 K
1.01 K
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
1.24 K
153
deepin linux kernel
C
30
16
华为昇腾面向大规模分布式训练的多模态大模型套件,支撑多模态生成、多模态理解。
Python
146
237
暂无简介
Dart
985
252
昇腾LLM分布式训练框架
Python
166
198
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.68 K
989