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 服务。
当前主题包含以下类型的 BE 配置:
存算分离
cloud_native_pk_index_rebuild_files_threshold
- 默认值:50
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:云原生主键索引在恢复(Rebuild)时允许重建的最大 Segment 文件数。若需要重建的文件数超过该阈值,StarRocks 会立即将内存中的 MemTable 刷盘,以减少需要重放的 Segment 数量。设置为
0则禁用此提前刷盘策略。 - 引入版本:-
cloud_native_pk_index_rebuild_rows_threshold
- 默认值:10000000
- 类型:Long
- 单位:行
- 是否动态:是
- 描述:云原生主键索引在恢复(Rebuild)时允许重建的最大行数。若需要重建的行数超过该阈值,StarRocks 会立即将内存中的 MemTable 刷盘,以降低索引重建开销。设置为
0则禁用此提前刷盘策略。与cloud_native_pk_index_rebuild_files_threshold配合使用,任一阈值超出均会触发刷盘。 - 引入版本:-
download_buffer_size
- 默认值:4194304
- 类型:Int
- 单位:Bytes
- 是否动态:是
- 描述:下载快照文件时每条传输流使用的内存缓冲区大小(fs::copy 的单次读写块大小)。值越大吞吐越高但每个并发下载占用更多内存。
- 引入版本:v3.2.13
graceful_exit_wait_for_frontend_heartbeat
- 默认值:false
- 类型: Boolean
- 单位:-
- 是否动态:是
- 描述: 确定是否在完成优雅退出前等待至少一个指示SHUTDOWN状态的FE心跳响应。启用后,优雅关闭进程将持续运行直至通过心跳RPC返回给FE SHUTDOWN状态变化,确保FE在两次常规心跳探测间隔期间有足够时间感知终止状态。
- 引入版本:v3.4.5
lake_compaction_stream_buffer_size_bytes
- 默认值:1048576
- 类型:Int
- 单位:Bytes
- 是否动态:是
- 描述:存算分离集群 Compaction 任务在远程 FS 读 I/O 阶段的 Buffer 大小。默认值为 1MB。您可以适当增大该配置项取值以加速 Compaction 任务。
- 引入版本:v3.2.3
lake_pk_compaction_max_input_rowsets
- 默认值:500
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:存算分离集群下,主键表 Compaction 任务中允许的最大输入 Rowset 数量。该参数默认值自 v3.2.4 和 v3.1.10 版本开始从
5变更为1000,并自 v3.3.1 和 v3.2.9 版本开始变更为500。存算分离集群中的主键表在开启 Sized-tiered Compaction 策略后 (即设置enable_pk_size_tiered_compaction_strategy为true),无需通过限制每次 Compaction 的 Rowset 个数来降低写放大,因此调大该值。 - 引入版本:v3.1.8, v3.2.3
loop_count_wait_fragments_finish
- 默认值:2
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:BE/CN 退出时需要等待正在执行的查询完成的轮次,一轮次固定 10 秒。设置为
0表示禁用轮询等待,立即退出。自 v3.4 起,该参数变为动态参数,且默认值由0变为2。 - 引入版本:v2.5
max_client_cache_size_per_host
- 默认值:10
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:BE 范围内的客户端缓存为每个远程主机保留的最大缓存 client 实例数。提高此值可以减少重连和 stub 创建开销,但会增加内存和文件描述符使用;降低它则节省资源但可能增加连接 churn。该值在启动时读取,运行时无法更改。目前一个共享设置控制所有客户端缓存类型;将来可能会引入每种缓存的独立配置。
- 引入版本:v3.2.0
starlet_filesystem_instance_cache_capacity
- 默认值:10000
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:starlet filesystem 实例的缓存容量。
- 引入版本:v3.2.16, v3.3.11, v3.4.1
starlet_filesystem_instance_cache_ttl_sec
- 默认值:86400
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:starlet filesystem 实例缓存的过期时间。
- 引入版本:v3.3.15, 3.4.5
starlet_port
- 默认值:9070
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:BE 和 CN 的额外 Agent 服务端口。
- 引入版本:-
starlet_star_cache_disk_size_percent
- 默认值:80
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:存算分离集群中,Data Cache 最多可使用的磁盘容量百分比。仅在
datacache_unified_instance_enable为false时生效。 - 引入版本:v3.1
starlet_use_star_cache
- 默认值:false(v3.1)true(v3.2.3 起)
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:存算分离集群中是否使用 Data Cache。
true表示启用该功能,false表示禁用。自 v3.2.3 起,默认值由false调整为true。 - 引入版本:v3.1
starlet_write_file_with_tag
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:存算分离集群下,是否将写入到对象存储的文件打上对象存储 Tag,方便自定义管理文件。
- 引入版本:v3.5.3
table_schema_service_max_retries
- 默认值:3
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:Table Schema Service 请求的最大重试次数。
- 引入版本:v4.1
数据湖
datacache_block_buffer_enable
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:否
- 描述:是否启用 Block Buffer 优化 Data Cache 效率。当启用 Block Buffer 时,系统会从 Data Cache 中读取完整的 Block 数据并缓存在临时 Buffer 中,从而减少频繁读取缓存带来的额外开销。
- 引入版本:v3.2.0
datacache_disk_adjust_interval_seconds
- 默认值:10
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:Data Cache 容量自动调整周期。每隔这段时间系统会进行一次缓存磁盘使用率检测,必要时触发相应扩缩容操作。
- 引入版本:v3.3.0
datacache_disk_idle_seconds_for_expansion
- 默认值:7200
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:Data Cache 自动扩容最小等待时间。只有当磁盘使用率在
datacache_disk_low_level以下持续时间超过该时长,才会触发自动扩容。 - 引入版本:v3.3.0
datacache_disk_size
- 默认值:0
- 类型:String
- 单位:-
- 是否动态:是
- 描述:单个磁盘缓存数据量的上限,可设为比例上限(如
80%)或物理上限(如2T,500G等)。假设系统使用了两块磁盘进行缓存,并设置datacache_disk_size参数值为21474836480,即 20 GB,那么最多可缓存 40 GB 的磁盘数据。默认值为0,即仅使用内存作为缓存介质,不使用磁盘。 - 引入版本:-
datacache_enable
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:否
- 描述:是否启用 Data Cache。
true表示启用,false表示不启用。自 v3.3 起,默认值变为true。 - 引入版本:-
datacache_eviction_policy
- 默认值:slru
- 类型:String
- 单位:-
- 是否动态:否
- 描述:缓存淘汰策略。有效值:
lru(least recently used) 和slru(Segmented LRU)。 - 引入版本:v3.4.0
datacache_inline_item_count_limit
- 默认值:130172
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:Data Cache 内联对象数量上限。当缓存的 Block 对象特别小时,Data Cache 会选择使用内联方式将 Block 数据和元数据一起缓存在内存中。
- 引入版本:v3.4.0
datacache_mem_size
- 默认值:0
- 类型:String
- 单位:-
- 是否动态:是
- 描述:内存缓存数据量的上限,可设为比例上限(如
10%)或物理上限(如10G,21474836480等)。 - 引入版本:-
datacache_min_disk_quota_for_adjustment
- 默认值:10737418240
- 类型:Int
- 单位:Bytes
- 是否动态:是
- 描述:Data Cache 自动扩缩容时的最小有效容量。当需要调整的目标容量小于该值时,系统会直接将缓存空间调整为
0,以避免缓存空间过小导致频繁填充和淘汰带来负优化。 - 引入版本:v3.3.0
datacache_unified_instance_enable
- 默认值:true
- 类型:Bool
- 单位:-
- 是否动态:否
- 描述:存算分离集群中,是否使用统一的 data cache 实例管理 internal catalog 和 external catalog 的数据缓存。
- 引入版本:v3.4.0
disk_high_level
- 默认值:90
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:磁盘高水位(百分比)。当磁盘使用率高于该值时,系统自动淘汰 Data Cache 中的缓存数据。自 v3.4.0 起,该参数默认值由
80变更为90。该参数自 v4.0 起由datacache_disk_high_level更名为disk_high_level。 - 引入版本:v3.3.0
disk_low_level
- 默认值:60
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:磁盘低水位(百分比)。当磁盘使用率在
datacache_disk_idle_seconds_for_expansion指定的时间内持续低于该值,且用于缓存数据的空间已经写满时,系统将自动进行缓存扩容,增加缓存上限。该参数自 v4.0 起由datacache_disk_low_level更名为disk_low_level。 - 引入版本:v3.3.0
disk_safe_level
- 默认值:80
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:磁盘安全水位(百分比)。当 Data Cache 进行缓存自动扩缩容时,系统将尽可能以该阈值为磁盘使用率目标调整缓存容量。自 v3.4.0 起,该参数默认值由
70变更为80。该参数自 v4.0 起由datacache_disk_safe_level更名为disk_safe_level。 - 引入版本:v3.3.0
enable_connector_sink_spill
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:是否支持在外表写入时启用数据 Spill。启用该功能能够避免当内存不足时写入外表导致生成大量小文件问题。当前仅支持向 Iceberg 表写入数据时启用 Spill 功能。
- 引入版本:v4.0.0
enable_datacache_disk_auto_adjust
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:Data Cache 磁盘容量自动调整开关,启用后会根据当前磁盘使用率动态调整缓存容量。该参数自 v4.0 起由
datacache_auto_adjust_enable更名为enable_datacache_disk_auto_adjust。 - 引入版本:v3.3.0
jdbc_connection_idle_timeout_ms
- 默认值:600000
- 类型:Int
- 单位:毫秒
- 是否动态:否
- 描述:JDBC 空闲连接超时时间。如果 JDBC 连接池内的连接空闲时间超过此值,连接池会关闭超过
jdbc_minimum_idle_connections配置项中指定数量的空闲连接。 - 引入版本:-