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 配置:
统计报告
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 核数的一半。 - 引入版本:-
enable_check_string_lengths
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:否
- 描述:是否在导入时进行数据长度检查,以解决 VARCHAR 类型数据越界导致的 Compaction 失败问题。
- 引入版本:-
enable_event_based_compaction_framework
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:否
- 描述:是否开启 Event-based Compaction Framework。
true代表开启。false代表关闭。开启则能够在 Tablet 数比较多或者单个 Tablet 数据量比较大的场景下大幅降低 Compaction 的开销。 - 引入版本:-
enable_lazy_delta_column_compaction
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:启用后,Compaction 将对由部分列更新产生的 Delta 列采用“懒惰”策略:StarRocks 会避免将 Delta-column 文件立即合并回其主段文件以节省 Compaction 的 I/O。实际上,Compaction 选择代码会检查是否存在部分列更新的 Rowset 和多个候选项;如果发现以上情况且此配置项为
true,引擎要么停止向 Compaction 添加更多输入,要么仅合并空的 Rowset(level -1),将 Delta 列保持分离。这会减少 Compaction 期间的即时 I/O 和 CPU 开销,但以延迟合并为代价(可能产生更多段和临时存储开销)。正确性和查询语义不受影响。 - 引入版本:v3.2.3
enable_new_load_on_memory_limit_exceeded
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:在导入线程内存占用达到硬上限后,是否允许新的导入线程。
true表示允许新导入线程,false表示拒绝新导入线程。 - 引入版本:v3.3.2
enable_pk_index_parallel_compaction
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:是否启用存算分离集群中主键索引的并行 Compaction。
- 引入版本:-
enable_pk_index_parallel_execution
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:是否启用存算分离集群中主键索引操作的并行执行。开启后,系统会在发布操作期间使用线程池并发处理分段,显著提升大表的性能。
- 引入版本:-
enable_pk_index_eager_build
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:是否在导入和 Compaction 阶段即时构建 Primary Key 索引文件。开启后,系统会在数据写入时直接生成持久化的主键索引文件,提升后续查询性能。
- 引入版本:-
enable_pk_size_tiered_compaction_strategy
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:否
- 描述:是否为 Primary Key 表开启 Size-tiered Compaction 策略。
true代表开启。false代表关闭。 - 引入版本:
- 存算分离集群自 v3.2.4, v3.1.10 起生效
- 存算一体集群自 v3.2.5, v3.1.10 起生效
enable_rowset_verify
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:是否检查 Rowset 的正确性。开启后,会在 Compaction、Schema Change 后检查生成的 Rowset 的正确性。
- 引入版本:-
enable_size_tiered_compaction_strategy
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:否
- 描述:是否开启 Size-tiered Compaction 策略 (Primary Key 表除外)。
true代表开启。false代表关闭。 - 引入版本:-
enable_strict_delvec_crc_check
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:当此项设置为
true后,系统会对 Delete Vector 的 crc32 进行严格检查,如果不一致,将返回失败。 - 引入版本:-
enable_transparent_data_encryption
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否动态:否
- 描述:启用后,StarRocks 将 为新写入的存储对象(segment 文件、delete/update 文件、rowset segments、lake SSTs、persistent index 文件等)进行磁盘加密。写入路径(RowsetWriter/SegmentWriter、lake UpdateManager/LakePersistentIndex 及相关代码路径)会从 KeyCache 请求加密信息,将 encryption_info 附加到可写文件,并将 encryption_meta 持久化到 rowset / segment / sstable 元数据中(如 segment_encryption_metas、delete/update encryption metadata)。FE 与 FE/CN 的加密标志必须匹配。如果不匹配会导致 BE 在心跳时中止(LOG(FATAL))。此参数不可在运行时修改,必须在第一次部署集群前启用,并确保密钥管理(KEK)与 KeyCache 已在集群中正确配置并同步。
- 引入版本:v3.3.1
enable_zero_copy_from_page_cache
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否动态:是
- 描述:允许 FixedLengthColumnBase 在追加来自页缓存的对齐缓冲区时零拷贝复用底层内存(需列为空、长度按元素大小对齐且资源可拥有)。开启可减少拷贝开销、提升导入/扫描吞吐;关闭则强制拷贝以降低耦合风险。
- 引入版本:-
file_descriptor_cache_clean_interval
- 默认值:3600
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:文件描述符缓存清理的间隔,用于清理长期不用的文件描述符。
- 引入版本:-
ignore_broken_disk
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否动态:否
- 描述:启动时若配置的存储路径(
storage_root_path/spill_local_storage_dir)读写检查失败或解析失败,是否跳过该路径继续启动。false(默认)遇到坏路径会终止启动;true则忽略并移除坏路径继续启动(若全部路径都坏仍会退出)。开启可能掩盖磁盘故障,需关注日志和磁盘健康。 - 引入版本:v3.2.0
inc_rowset_expired_sec
- 默认值:1800
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:导入生效的数据,存储引擎保留的时间,用于增量克隆。
- 引入版本:-
load_process_max_memory_hard_limit_ratio
- 默认值:2
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:单节点上所有的导入线程占据内存的硬上限(比例)。当
enable_new_load_on_memory_limit_exceeded设置为false,并且所有导入线程的内存占用超过load_process_max_memory_limit_percent * load_process_max_memory_hard_limit_ratio时,系统将会拒绝新的导入线程。 - 引入版本:v3.3.2
load_process_max_memory_limit_percent
- 默认值:30
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:单节点上所有的导入线程占据内存的软上限(百分比)。
- 引入版本:-
lz4_expected_compression_ratio
- 默认值:2.1
- 类型:Double
- 单位:-
- 是否动态:是
- 描述:序列化压缩策略用于判断观察到的 LZ4 压缩是否“良好”的阈值。增大此值会提高期望的压缩比(使条件更难满足),降低则更容易使观察到的压缩被视为令人满意。根据典型数据的可压缩性进行调优。有效范围:MIN=1, MAX=65537。
- 引入版本:v3.4.1, 3.5.0, 4.0.0
lz4_expected_compression_speed_mbps
- 默认值:600
- 类型:Double
- 单位:MB/s
- 是否动态:是
- 描述:自适应压缩策略中用于表示期望 LZ4 压缩吞吐量的值,单位为 MB/s。反馈例程会计算
reward_ratio = (observed_compression_ratio / lz4_expected_compression_ratio) * (observed_speed / lz4_expected_compression_speed_mbps)。当 reward_ratio 大于 1.0 时增加正计数器(alpha),否则增加负计数器(beta);这会影响未来数据是否被压缩。请根据你的硬件上典型的 LZ4 吞吐量调整此值——提高它会使策略更难将一次运行判定为“良好”(需要更高的观测速度),降低则更容易被判定为良好。必须为正的有限数。 - 引入版本:v3.4.1, 3.5.0, 4.0.0
make_snapshot_worker_count
- 默认值:5
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:BE 节点快照任务的最大线程数。
- 引入版本:-
make_snapshot_rpc_timeout_ms
- 默认值:2000
- 类型:Int
- 单位:Milliseconds
- 是否动态:否
- 描述:make snapshot 相关 RPC 的超时时长(毫秒),用于快照任务的远端调用。
- 引入版本:-
manual_compaction_threads
- 默认值:4
- 类型:Int
- 单位:-
- 是否动态:否
- 描述:Number of threads for Manual Compaction.
- 引入版本:-
max_base_compaction_num_singleton_deltas
- 默认值:100
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:单次 Base Compaction 合并的最大 Segment 数。
- 引入版本:-
max_compaction_candidate_num
- 默认值:40960
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:Compaction 候选 Tablet 的最大数量。太大会导致内存占用和 CPU 负载高。
- 引入版本:-
max_compaction_concurrency
- 默认值:-1
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:Compaction 线程数上限(即 BaseCompaction + CumulativeCompaction 的最大并发)。该参数防止 Compaction 占用过多内存。
-1代表没有限制。0表示禁用 Compaction。开启 Event-based Compaction Framework 时,该参数才支持动态设置。 - 引入版本:-
max_cumulative_compaction_num_singleton_deltas
- 默认值:1000
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:单次 Cumulative Compaction 能合并的最大 Segment 数。如果 Compaction 时出现内存不足的情况,可以调小该值。
- 引入版本:-
max_download_speed_kbps
- 默认值:50000
- 类型:Int
- 单位:KB/Second
- 是否动态:是
- 描述:单个 HTTP 请求的最大下载速率。这个值会影响 BE 之间同步数据副本的速 度。
- 引入版本:-
max_garbage_sweep_interval
- 默认值:3600
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:磁盘进行垃圾清理的最大间隔。自 3.0 版本起,该参数由静态变为动态。
- 引入版本:-
max_percentage_of_error_disk
- 默认值:0
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:错误磁盘达到该比例上限,BE 退出。
- 引入版本:-
max_queueing_memtable_per_tablet
- 默认值:2
- 类型:Long
- 单位:-
- 是否动态:是
- 描述:控制写路径的每个 Tablet 的反压:当某个 Tablet 的排队(尚未刷写)memtable 数量达到或超过
max_queueing_memtable_per_tablet时,LocalTabletsChannel和LakeTabletsChannel中的写入者在提交更多写入工作之前会阻塞(sleep/retry)。这可以降低同时进行的 memtable 刷写并减少峰值内存使用,但代价是增加延迟或在高负载下发生 RPC 超时。将此值设高以允许更多并发 memtable(更多内存和 I/O 突发);设低以限制内存压力并增加写入节流。 - 引入版本:v3.2.0
max_row_source_mask_memory_bytes
- 默认值:209715200
- 类型:Int
- 单位:Bytes
- 是否动态:否
- 描述:Row source mask buffer 的最大内存占用大小。当 buffer 大于该值时将会持久化到磁盘临时文件中。该值应该小于
compaction_memory_limit_per_worker参数的值。 - 引入版本:-
max_tablet_write_chunk_bytes
- 默认值:536870912
- 类型:long
- 单位:Bytes
- 是否动态:是
- 描述:当前内存 tablet 写入 chunk 在被视为已满并入队发送之前允许的最大内存(以字节为单位)。增大此值可以在加载宽表(列数多)时减少 RPC 频率,从而提高吞吐量,但代价是更高的内存使用和更大的 RPC 负载。需要调整此值以在减少 RPC 次数与内存及序列化/BRPC 限制之间取得平衡。
- 引入版本:v3.2.12
max_update_compaction_num_singleton_deltas
- 默认值:1000
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:主键表单次 Compaction 合并的最大 Rowset 数。
- 引入版本:-
memory_limitation_per_thread_for_schema_change
- 默认值:2
- 类型:Int
- 单位:GB
- 是否动态:是
- 描述:单个 Schema Change 任务允许占用的最大内存。
- 引入版本:-
memory_ratio_for_sorting_schema_change
- 默认值:0.8
- 类型:Double
- 单位:- (unitless ratio)
- 是否动态:是
- 描述:在排序型 schema-change 操作期间,用作 memtable 最大缓冲区大小的每线程 schema-change 内存限制的比例。该比例会与 memory_limitation_per_thread_for_schema_change(以 GB 配置并转换为字节)相乘以计算 max_buffer_size,且结果上限为 4GB。SchemaChangeWithSorting 和 SortedSchemaChange 在创建 MemTable/DeltaWriter 时使用此值。增大该比例允许更大的内存缓冲区(减少 flush/merge 次数),但会增加内存压力风险;减小该比例会导致更频繁的 flush,从而增加 I/O/merge 开销。
- 引入版本:v3.2.0
min_base_compaction_num_singleton_deltas
- 默认值:5
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:触发 Base Compaction 的最小 Segment 数。
- 引入版本:-
min_compaction_failure_interval_sec
- 默认值:120
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:Tablet Compaction 失败之后,再次被调度的间隔。
- 引入版本:-
min_cumulative_compaction_failure_interval_sec
- 默认值:30
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:Cumulative Compaction 失败后的最小重试间隔。
- 引入版本:-
min_cumulative_compaction_num_singleton_deltas
- 默认值:5
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:触发 Cumulative Compaction 的最小 Segment 数。
- 引入版本:-
min_garbage_sweep_interval
- 默认值:180
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:磁盘进行垃圾清理的最小间隔。自 3.0 版本起,该参数由静态变为动态。
- 引入版本:-
parallel_clone_task_per_path
- 默认值:8
- 类型:Int
- 单位:Threads
- 是否动态:是
- 描述:在 BE 的每个存储路径上分配的并行 clone 工作线程数。BE 启动时,clone 线程池的最大线程数计算为 max(number_of_store_paths * parallel_clone_task_per_path, MIN_CLONE_TASK_THREADS_IN_POOL)。例如,若有 4 个存储路径且默认=8,则 clone 池最大 = 32。此设置直接控制 BE 处理的 CLONE 任务(tablet 副本拷贝)的并发度:增加它会提高并行 clone 吞吐量,但也会增加 CPU、磁盘和网络争用;减少它会限制同时进行的 clone 任务并可能限制 FE 调度的 clone 操作。该值应用于动态 clone 线程池,可通过 update-config 路径在运行时更改(会导致 agent_server 更新 clone 池的最大线程数)。
- 引入版本:v3.2.0
pending_data_expire_time_sec
- 默认值:1800
- 类型:Int
- 单位:秒
- 是否动态:是
- 描述:存储引擎保留的未生效数据的最大时长。
- 引入版本:-
pindex_major_compaction_limit_per_disk
- 默认值:1
- 类型:Int
- 单位:-
- 是否动态:是
- 描述:每块盘 Compaction 的最大并发数,用于解决 Compaction 在磁盘之间不均衡导致个别磁盘 I/O 过高的问题。
- 引入版本:v3.0.9