前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Doris磁盘均衡问题排查指南

Doris磁盘均衡问题排查指南

原创
作者头像
数据微光
修改2025-02-28 16:18:46
修改2025-02-28 16:18:46
750
举报

在Doris集群运维中,磁盘均衡是保证数据高效存储和查询性能的关键。然而,由于数据分布不均、参数配置不当或环境异常,磁盘不均衡问题时有发生。本文将深入解析Doris磁盘均衡的优化方法、排查流程及常见问题解决方案,助你快速定位并解决问题。

一、均衡任务排查指南

  1. 基础检查项 确认主fe 的以下的配置执行命令:admin show frontend config like "xxxx" 其中: 1. disable_balance = false 2. disable_disk_balance = false 3. disable_colocate_balance = false 4. disable_tablet_scheduler = false 5. 如果用户是单副本的表,且版本是2.0.4之后,且磁盘不均衡,需要把 enable_disk_balance_for_single_replica 改成true (它的默认值是false)
  2. 负载诊断指标
代码语言:sql
复制
-- 查看BE负载分布
SHOW PROC '/cluster_balance/cluster_load_stat/location_default/HDD';
  • BE间均衡:Class状态应为MID
  • 磁盘间均衡:MaxDisk状态应为MID
  • 任务运行监控-- 查看运行中任务 SHOW PROC '/cluster_balance/running_tablets';

-- 检查历史任务状态

SHOW PROC '/cluster_balance/history_tablets';常见失败原因:

  • 长事务阻塞(需手动ABORT)
  • 副本迁移超时(调整线程数)
  • 版本BUG(2.0.4前版本建议升级)

二、 典型问题解决方案

1. 单副本磁盘迁移失败

代码语言:sql
复制
-- 启用单副本平衡
ADMIN SET FRONTEND CONFIG('enable_disk_balance_for_single_replica'='true');

2. OtherUsedCapacity过高

如果OtherUsedCapacity 很大,这时可能也会造成无法磁盘均衡,其他数据占用了很多空间需要手动清理。

代码语言:sql
复制
SHOW PROC "/backends/be_id"; -- 定位大文件

3. 磁盘被标记为Bad

代码语言:bash
复制
# 检查BE日志
grep "IO Error" be.INFO

恢复步骤:

be/conf/下找见be_customer的文件,打开文件,注释掉被标注路径,重新启动BE节点

4. 存储介质类型

确认be.conf下storage_root_path数据存储路径是否显式指定了存储介质类型,如果没有冷热分层的需求去掉指定的存储介质类型,再重启be。

代码语言:properties
复制
# 确保BE配置与表一致
storage_root_path=/data1;/data2

5. 垃圾文件占用了磁盘空间

通过如下命令清理垃圾数据

代码语言:sql
复制
-- 展示回收站元数据:
  SHOW CATALOG RECYCLE BIN;
-- 设置回收站过期时间(如设置为0):
  ADMIN SET FRONTEND CONFIG ("catalog_trash_expire_second" = "0");
-- 清理垃圾数据:
  ADMIN CLEAN TRASH;
-- 恢复回收站默认过期时间(如1天):
  ADMIN SET FRONTEND CONFIG ("catalog_trash_expire_second" = "86400");

注意

admin clean trash只是触发了clean trash去做清理任务,并不是立马会腾出空间,所以执行admin clean trash后并不会里面容量变低。后面异步任务会清理,这两个过期时间的文件。

如果过了一段时间后磁盘占用还是没有减少,执行以下操作

代码语言:bash
复制
be.conf配置下面的参数,重启BE生效:
snapshot_expire_time_sec = 0 
trash_file_expire_time_sec = 0

6. 资源组不匹配

均衡是对同tag,且同storage medium上进行均衡的。如果表的replication allocation的tag 跟它所在backend的tag不一样,或者backend不含有该表的storage medium ,那么也是无法均衡的。

7. 冷热存储不均衡

如果数据是有使用S3对象冷存的,那么tablet 开始冷存之后,这些tablet 不能在同BE的不同磁盘上挪动了,但仍可以迁移到其他BE节点上。

三、加速磁盘均衡参数配置

FE参数

代码语言:sql
复制
balance_slot_num_per_path=10          # 每路径的均衡任务槽位数
schedule_slot_num_per_hdd_path=10     # HDD路径调度任务槽位数
max_balancing_tablets=100             # 最大并行均衡任务数

BE参数(需重启生效)

代码语言:bash
复制
clone_worker_count=6       # 跨BE副本迁移线程数
download_worker_count=3    # 数据下载线程数

通过上述方法,可有效应对Doris磁盘均衡问题。如遇复杂场景,建议参考官方文档或社区讨论获取支持。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、均衡任务排查指南
  • 二、 典型问题解决方案
    • 1. 单副本磁盘迁移失败
    • 2. OtherUsedCapacity过高
    • 3. 磁盘被标记为Bad
    • 4. 存储介质类型
    • 5. 垃圾文件占用了磁盘空间
    • 6. 资源组不匹配
    • 7. 冷热存储不均衡
  • 三、加速磁盘均衡参数配置
    • FE参数
    • BE参数(需重启生效)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档