BE 配置项 - 统计报告和存储
部分 BE 节点配置项为动态参数,您可以通过命令在线修改。其他配置项为静态参数,需要通过修改 be.conf 文件后重启 BE 服务使相关修改生效。
查看 BE 配置项
您可以通过以下命令查看 BE 配置项:
SELECT * FROM information_schema.be_configs WHERE NAME LIKE "%<name_pattern>%"
配置 BE 参数
配置 BE 动态参数
您可以通过更新 information_schema.be_configs 中的值来配置 BE 节点的动态参数。
warning
设置无效的值可能会导致未知行为。在运行更新配置的命令之前,请务必仔细核对。
-- 将 <config_key> 替换为配置键,将 <config_value> 替换为配置值。
UPDATE information_schema.be_configs SET VALUE = <config_value> WHERE name = "<config_key>";
配置 BE 静态参数
BE 静态参数不支持在线修改,您需要在 be.conf 中修改并重启 BE 服务。
当前主题包含以下类型的 FE 配置:
统计报告
enable_metric_calculator
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:否
- 描述:是否启用周期性指标聚合线程(metrics calculator)。控制指标计算周期任务的启停;系统级指标初始化由
enable_system_metrics控制。 - 引入版本:-
enable_system_metrics
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:否
- 描述:为 true 时,StarRocks 在启动期间初始化系统级监控:它会根据配置的存储路径发现磁盘设备并枚举网络接口,然后将这些信息传入 metrics 子系统以启用磁盘 I/O、网络流量和内存相关的系统指标采集。如果设备或接口发现失败,初始化会记录警告并中止系统指标的设置。该标志仅控制是否初始化系统指标;周期性指标聚合线程由
enable_metric_calculator单独控制,JVM 指标初始化由enable_jvm_metrics控制。更改此值需要重启。 - 引入版本:v3.2.0
profile_report_interval
- 默认值:30
- 类型:Int
- 单位:Seconds
- 是否动态:是
- 描述:ProfileReportWorker 用于(1)决定何时上报 LOAD 查询的每个 fragment 的 profile 信息以及(2)在上报周期之间休眠的间隔(秒)。该 worker 使用 (profile_report_interval * 1000) ms 将当前时间与每个任务的 last_report_time 进行比较,以确定是否需要对非 pipeline 和 pipeline 的 load 任务重新上报 profile。在每次循环中,worker 会读取当前值(运行时可变);如果配置值小于等于 0,worker 会强制将其设为 1 并发出警告。修改此值会影响下一次的上报判断和休眠时长。
- 引入版本:v3.2.0
report_disk_state_interval_seconds
- 默认值:60
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:汇报磁盘状态的间隔。汇报各个磁盘的状态,以及其中数据量等。
- 引入版本:-
report_resource_usage_interval_ms
- 默认值:1000
- 类型:Int
- 单位:毫秒
- 是否动态:是
- 描述:由 BE Agent 定期向 FE 发送资源使用报告的间隔(毫秒)。较低的值能提高报告的及时性,但会增加 CPU、网络和 FE 的负载;较高的值可降低开销但会使资源信息不够实时。上报会更新相关指标(
report_resource_usage_requests_total、report_resource_usage_requests_failed)。请根据集群规模和 FE 负载调整。 - 引入版本:v3.2.0
report_tablet_interval_seconds
- 默认值:60
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:汇报 Tablet 的间隔。汇报所有的 Tablet 的最新版本。
- 引入版本:-
report_task_interval_seconds
- 默认值:10
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:汇报单个任务的间隔。建表,删除表,导入,Schema Change 都可以被认定是任务。
- 引入版本:-
report_workgroup_interval_seconds
- 默认值:5
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:汇报 Workgroup 的间隔。汇报所有 Workgroup 的最新版本。
- 引入版本:-
存储
alter_tablet_worker_count
- 默认值:3
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:进行 Schema Change 的线程数。自 2.5 版本起,该参数由静态变为动态。
- 引入版本:-
automatic_partition_thread_pool_thread_num
- 默认值:1000
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:自动分区线程池的线程数。队列长度自动设置为线程数的 10 倍。
- 引入版本:-
create_tablet_worker_count
- 默认值:3
- 类型:Int
- 单位:Threads
- 是否动态:是
- 描述:处理创建 Tablet 任务(TTaskType::CREATE)的线程池最大线程数。启动时用于初始化 AgentServer 的 CREATE 线程池,运行时修改会更新线程池上限。调大可提升批量建表/分区时的并发,调小可降低资源占用。
- 引入版本:v3.2.0
avro_ignore_union_type_tag
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:是否在 Avro Union 数据结构序列化成 JSON 格式时,去除 Union 结构的类型标签信息。
- 引入版本:v3.3.7, v3.4
base_compaction_check_interval_seconds
- 默认值:60
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:Base Compaction 线程轮询的间隔。
- 引入版本:-
base_compaction_interval_seconds_since_last_operation
- 默认值:86400
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:上一轮 Base Compaction 距今的间隔。此项为 Base Compaction 触发条件之一。
- 引入版本:-
base_compaction_num_threads_per_disk
- 默认值:1
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:每个磁盘 Base Compaction 线程的数目。
- 引入版本:-
base_cumulative_delta_ratio
- 默认值:0.3
- 类型:Double
- 单位:-
- 是否动态:是
- 描述:Cumulative 文件大小达到 Base 文件的比例。此项为 Base Compaction 触发条件之一。
- 引入版本:-
chaos_test_enable_random_compaction_strategy
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:当此项设置为
true时,TabletUpdates::compaction() 将使用为混沌测试准备的随机压缩策略(compaction_random)。此标志强制在平板的压缩选择中采用非确定性/随机策略,而不是正常策略(例如 size-tiered compaction),并在压缩选择时具有优先权。仅用于可控的测试场景:启用后可能导致不可预测的压缩顺序、增加的 I/O/CPU 和测试不稳定性。请勿在生产环境中启用;仅用于故障注入或混沌测试场景。 - 引入版本:v3.3.12, 3.4.2, 3.5.0, 4.0.0
check_consistency_worker_count
- 默认值:1
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:计算 Tablet 的校验和(checksum)的线程数。
- 引入版本:-
clear_expired_replication_snapshots_interval_seconds
- 默认值:3600
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:系统清除异常同步遗留的过期快照的时间间隔。
- 引入版本:v3.3.5
compact_threads
- 默认值:4
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:并发 Compaction 任务的最大线程数。自 v3.1.7,v3.2.2 起变为动态参数。
- 引入版本:v3.0.0
compaction_memory_limit_per_worker
- 默认值:2147483648
- 类型:Int
- 单位:Bytes
- 是否动态:否
- 描述:每个 Compaction 线程允许的最大内存大小。
- 引入版本:-
compaction_max_memory_limit_percent
- 默认值:20
- 类型:Int
- 单位:Percent
- 是否动态:否
- 描述:Compaction 内存上限占进程内存的百分比,最终上限取
min(compaction_max_memory_limit, process_mem_limit * percent / 100);process_mem_limit为 -1 时视为不限制。 - 引入版本:-
compaction_max_memory_limit
- 默认值:-1
- 类型:Long
- 单位:Bytes
- 是否动态:否
- 描述:Compaction 内存的字节上限。与
compaction_max_memory_limit_percent共同决定 Compaction 可用的内存预算,取二者计算结果的较小值;-1 表示不单独限制(仍受百分比限制约束)。 - 引入版本:-
compaction_trace_threshold
- 默认值:60
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:单次 Compaction 打印 Trace 的时间阈值,如果单次 Compaction 时间超 过该阈值就打印 Trace。
- 引入版本:-
cumulative_compaction_check_interval_seconds
- 默认值:1
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:Cumulative Compaction 线程轮询的间隔。
- 引入版本:-
cumulative_compaction_num_threads_per_disk
- 默认值:1
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:每个磁盘 Cumulative Compaction 线程的数目。
- 引入版本:-
data_page_size
- 默认值:65536
- 类型:Int
- 单位:Bytes
- 是否动态:否
- 描述:构建列数据与索引页时使用的目标未压缩 Page 大小(以字节为单位)。该值会被 Page Builder 用来决定何时完成一个 Page 以及预留多少内存。值为 0 会在构建器中禁用 Page 大小限制。更改此值会影响 Page 数量、元数据开销、内存预留以及 I/O/压缩的权衡(Page 越小 → Page 数和元数据越多;Page 越大 → Page 更少,压缩比更大,但内存峰值可能更大)。
- 引入版本:v3.2.4
default_num_rows_per_column_file_block
- 默认值:1024
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:每个 Row Block 最多存放的行数。
- 引入版本:-
delete_worker_count_high_priority
- 默认值:1
- 类型:Int
- 单位:Threads
- 是否动态:否
- 描述:在 DeleteTaskWorkerPool 中被分配为高优先级删除线程的工作线程数。启动时 AgentServer 使用 total threads = delete_worker_count_normal_priority + delete_worker_count_high_priority 创建删除线程池;前 delete_worker_count_high_priority 个线程被标记为专门尝试弹出 TPriority::HIGH 任务(它们轮询高优先级删除任务,若无可用任务则睡眠/循环)。增加此值可以提高高优先级删除请求的并发性;减少它会降低专用容量并可能增加高优先级删除的延迟。更改需要重启进程才能生效。
- 引入版本:v3.2.0
dictionary_encoding_ratio
- 默认值:0.7
- 类型:Double
- 单位:-
- 是否动态:否
- 描述:字符串列在推测编码阶段决定是否使用字典编码的阈值。计算
max_card = row_count * dictionary_encoding_ratio,当去重基数超过该值时改用 PLAIN_ENCODING,否则使用 DICT_ENCODING。仅在行数超过dictionary_speculate_min_chunk_size且大于字典最小行数时生效。值越高越偏向字典编码,1.0 基本强制字典。 - 引入版本:v3.2.0
dictionary_encoding_ratio_for_non_string_column
- 默认值:0
- 类型:Double
- 单位:-
- 是否动态:否
- 描述:非字符串列是否采用字典编码的比率阈值。大于 0 时,计算
max_card = row_count * 该值,只有 distinct ≤ max_card 才用 DICT_ENCODING,否则回退 BIT_SHUFFLE;0 表示禁用非字符串字典编码。与dictionary_encoding_ratio类似但作用于非字符串列。 - 引入版本:v3.3.0, v3.4.0, v3.5.0
dictionary_page_size
- 默认值:1048576
- 类型:Int
- 单位:Bytes
- 是否动态:否
- 描述:字典页大小。控制单个字典页可容纳的字典条目数,影响写入时的内存占用与压缩效果。过大提升压缩比但占用更多内存/IO,过小则可能降低压缩收益。
- 引入版本:v3.3.0, v3.4.0, v3.5.0
lz4_acceleration
- 默认值:1
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:LZ4 压缩加速参数,对应 LZ4_fastCompress 的 acceleration。值越大压缩越快但压缩率下降。
- 引入版本:-
lz4_expected_compression_ratio
- 默认值:5.0
- 类型:Double
- 单位:-
- 是否动态:否
- 描述:预期的 LZ4 压缩比,用于评估压缩收益。
- 引入版本:-
lz4_expected_compression_speed_mbps
- 默认值:500
- 类型:Double
- 单位:MB/s
- 是否动态:否
- 描述:预期的 LZ4 压缩速度,用于估算压缩开销。
- 引入版本:-
small_dictionary_page_size
- 默认值:262144
- 类型:Int
- 单位:Bytes
- 是否动态:否
- 描述:小字典页大小,用于小字典场景的页大小控制,影响内存占用与压缩效率。
- 引入版本:-
disk_stat_monitor_interval
- 默认值:5
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:磁盘健康状态检测的间隔。
- 引入版本:-
download_low_speed_limit_kbps
- 默认值:50
- 类型:Int
- 单位:KB/Second
- 是否动态:是
- 描述:单个 HTTP 请求的下载速率下限。如果在
download_low_speed_time秒内下载速度一直低于download_low_speed_limit_kbps,那么请求会被终止。 - 引入版本:-
download_low_speed_time
- 默认值:300
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:单个 HTTP 请求持续以低于
download_low_speed_limit_kbps值的速度运行时,允许运行的最长时间。在配置项中指定的时间跨度内,当一个 HTTP 请求持续以低于该值的速度运行时,该请求将被中止。 - 引入版本:-
download_worker_count
- 默认值:0
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:BE 节点下载任务的最大线程数,用于恢复作业。
0表示设置线程数为 BE 所在机器的 CPU 核数。 - 引入版本:-
drop_tablet_worker_count
- 默认值:0
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:删除 Tablet 的线程数。
0表示当前节点的 CPU 核数的一半。 - 引入版本:-