FE 配置 - 统计报告和存储
FE 参数分为动态参数和静态参数。
-
动态参数可通过 SQL 命令进行在线配置和调整,方便快捷。需要注意通过 SQL 命令所做的动态设置在重启 FE 后会失效。如果想让设置长期生效,建议同时修改 fe.conf 文件。
-
静态参数必须在 FE 配置文件 fe.conf 中进行配置和调整。调整完成后,需要重启 FE 使变更生效。
参数是否为动态参数可通过 ADMIN SHOW CONFIG 返回结果中的 IsMutable 列查看。TRUE 表示动态参数。
静态和动态参数均可通过 fe.conf 文件进行修改。
查看 FE 配置项
FE 启动后,您可以在 MySQL 客户端运行 ADMIN SHOW FRONTEND CONFIG 命令查看参数配置。如果要查询特定参数的配置,请运行以下命令:
ADMIN SHOW FRONTEND CONFIG [LIKE "pattern"];
有关返回字段的详细说明,请参阅 ADMIN SHOW CONFIG。
备注
您必须具有管理员权限才能运行集群管理相关命令。
配置 FE 参数
配置 FE 动态参数
您可以使用 ADMIN SET FRONTEND CONFIG 命令配置或修改 FE 动态参数。
ADMIN SET FRONTEND CONFIG ("key" = "value");
备注
动态设置的配置项,在 FE 重启之后会恢复成 fe.conf 文件中的配置或者默认值。如果需要让配置长期生效,建议设置完之后同时修改 fe.conf 文件,防止重启后修改失效。
配置 FE 静态参数
备注
FE 静态参数不支持在线修改,您需要在 fe.conf 中修改并重启 FE 以使修改生效。
当前主题包含以下类型的 FE 配置:
统计报告
enable_collect_warehouse_metrics
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 当此项设置为
true时,系统将收集并导出每个仓库的指标。启用它会将仓库级别的指标(槽位/使用率/可用性)添加到指标输出中,并增加指标基数和收集开销。禁用它可省略仓库特定指标,并减少 CPU/网络和监控存储成本。 - 引入版本: v3.5.0
enable_http_detail_metrics
- 默认值: false
- 类型: boolean
- 单位: -
- 是否可变: Yes
- 描述: 当为 true 时,HTTP 服务器计算并暴露详细的 HTTP worker 指标(特别是
HTTP_WORKER_PENDING_TASKS_NUMgauge)。启用此功能会导致服务器迭代 Netty worker 执行器并调用每个NioEventLoop上的pendingTasks()以汇总待处理任务计数;禁用时,gauge 返回 0 以避免此成本。这种额外的收集可能会耗费 CPU 和延迟 — 仅在调试或详细调查时启用。 - 引入版本: v3.2.3
proc_profile_collect_time_s
- 默认值: 120
- 类型: Int
- 单位: 秒
- 是否可变: Yes
- 描述: 单次进程 profile 收集的持续时间(秒)。当
proc_profile_cpu_enable或proc_profile_mem_enable设置为true时,AsyncProfiler 启动,收集器线程休眠此持续时间,然后 profiler 停止并写入 profile。较大的值会增加样本覆盖率和文件大小,但会延长 profiler 运行时并延迟后续收集;较小的值会减少开销,但可能会产生不足的样本。确保此值与proc_profile_file_retained_days和proc_profile_file_retained_size_bytes等保留设置对齐。 - 引入版本: v3.2.12
存储
alter_table_timeout_second
- 默认值: 86400
- 类型: Int
- 单位: 秒
- 是否可变: Yes
- 描述: schema 变更操作 (ALTER TABLE) 的超时时长。
- 引入版本: -
capacity_used_percent_high_water
- 默认值: 0.75
- 类型: double
- 单位: 分数 (0.0–1.0)
- 是否可变: Yes
- 描述: 计算后端负载分数时使用的磁盘容量使用百分比(总容量的百分比)的高水位阈值。
BackendLoadStatistic.calcSore使用capacity_used_percent_high_water设置LoadScore.capacityCoefficient:如果后端的使用百分比小于 0.5,则系数等于 0.5;如果使用百分比>capacity_used_percent_high_water,则系数 = 1.0;否则,系数通过 (2 * usedPercent - 0.5) 随使用百分比线性变化。当系数为 1.0 时,负载分数完全由容量比例决定;较低的值会增加副本计数的权重。调整此值会改变平衡器惩罚磁盘利用率高的后端的积极程度。 - 引入版本: v3.2.0
catalog_trash_expire_second
- 默认值: 86400
- 类型: Long
- 单位: 秒
- 是否可变: Yes
- 描述: 数据库、表或分区删除后,元数据可保留的最长时间。如果此持续时间过期,数据将被删除,并且无法通过 RECOVER 命令恢复。
- 引入版本: -
catalog_recycle_bin_erase_min_latency_ms
- 默认值: 600000
- 类型: Long
- 单位: 毫秒
- 是否可变: Yes
- 描述: 数据库、表或分区被删除后,擦除元数据前的最小延迟时间(毫秒)。用于避免擦除日志先于删除日志写入。
- 引入版本: -
catalog_recycle_bin_erase_max_operations_per_cycle
- 默认值: 500
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: 每个周期内从回收站中实际删除数据库、表或分区的最大擦除操作数。擦除操作会持有锁,因此单批次不宜过大。
- 引入版本: -
catalog_recycle_bin_erase_fail_retry_interval_ms
- 默认值: 60000
- 类型: Long
- 单位: 毫秒
- 是否可变: Yes
- 描述: 回收站擦除操作失败后的重试间隔时间(毫秒)。
- 引入版本: -
check_consistency_default_timeout_second
- 默认值: 600
- 类型: Long
- 单位: 秒
- 是否可变: Yes
- 描述: 副本一致性检查的超时时长。您可以根据 tablet 的大小设置此参数。
- 引入版本: -
consistency_check_cooldown_time_second
- 默认值: 24 * 3600
- 类型: Int
- 单位: 秒
- 是否可变: Yes
- 描述: 控制同一 tablet 两次一致性检查之间的最小间隔(以秒为单位)。在 tablet 选择期间,只有当
tablet.getLastCheckTime()小于(currentTimeMillis - consistency_check_cooldown_time_second * 1000)时,tablet 才被视为符合条件。默认值 (24 * 3600) 强制每个 tablet 大约每天检查一次,以减少后端磁盘 I/O。降低此值会增加检查频率和资源使用;提高此值会以更慢地检测不一致为代价减少 I/O。该值在从索引的 tablet 列表中过滤冷却的 tablet 时全局应用。 - 引入版本: v3.5.5
consistency_check_end_time
- 默认值: "4"
- 类型: String
- 单位: 一天中的小时 (0-23)
- 是否可变: No
- 描述: 指定 ConsistencyChecker 工作窗口的结束小时(一天中的小时)。该值使用 SimpleDateFormat("HH") 在系统时区中解析,并接受 0-23(一位或两位数)。StarRocks 将其与
consistency_check_start_time一起使用,以决定何时调度和添加一致性检查作业。当consistency_check_start_time大于consistency_check_end_time时,窗口跨越午夜(例如,默认consistency_check_start_time= "23" 到consistency_check_end_time= "4")。当consistency_check_start_time等于consistency_check_end_time时,检查器从不运行。解析失败将导致 FE 启动记录错误并退出,因此请提供有效的小时字符串。 - 引入版本: v3.2.0
consistency_check_start_time
- 默认值: "23"
- 类型: String
- 单位: 一天中的小时 (00-23)
- 是否可变: No
- 描述: 指定 ConsistencyChecker 工作窗口的开始小时(一天中的小时)。该值使用 SimpleDateFormat("HH") 在系统时区中解析,并接受 0-23(一位或两位数)。StarRocks 将其与
consistency_check_end_time一起使用,以决定何时调度和添加一致性检查作业。当consistency_check_start_time大于consistency_check_end_time时,窗口跨越午夜(例如,默认consistency_check_start_time= "23" 到consistency_check_end_time= "4")。当consistency_check_start_time等于consistency_check_end_time时,检查器从不运行。解析失败将导致 FE 启动记录错误并退出,因此请提供有效的小时字符串。 - 引入版本: v3.2.0
consistency_tablet_meta_check_interval_ms
- 默认值: 2 * 3600 * 1000
- 类型: Int
- 单位: 毫秒
- 是否可变: Yes
- 描述: ConsistencyChecker 用于在
TabletInvertedIndex和LocalMetastore之间运行完整 tablet 元数据一致性扫描的间隔。runAfterCatalogReady中的守护程序在current time - lastTabletMetaCheckTime超过此值时触发 checkTabletMetaConsistency。当首次检测到无效 tablet 时,其toBeCleanedTime设置为now + (consistency_tablet_meta_check_interval_ms / 2),因此实际删除会延迟到后续扫描。增加此值可减少扫描频率和负载(清理较慢);减少此值可更快检测和删除陈旧 tablet(开销较高)。 - 引入版本: v3.2.0
default_replication_num
- 默认值: 3
- 类型: Short
- 单位: -
- 是否可变: Yes
- 描述: 设置在 StarRocks 中创建表时每个数据分区的默认副本数。此设置可以在创建表时通过在 CREATE TABLE DDL 中指定
replication_num=x来覆盖。 - 引入版本: -
enable_auto_tablet_distribution
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否自动设置 bucket 数量。
- 如果此参数设置为
TRUE,您在创建表或添加分区时无需指定 bucket 数量。StarRocks 会自动确定 bucket 数量。 - 如果此参数设置为
FALSE,您在创建表或添加分区时需要手动指定 bucket 数量。如果您在向表添加新分区时不指定 bucket 数量,新分区将继承表创建时设置的 bucket 数量。但是,您也可以手动为新分区指定 bucket 数量。
- 如果此参数设置为
- 引入版本: v2.5.7
enable_experimental_rowstore
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否启用混合行存和列存功能。
- 引入版本: v3.2.3
enable_fast_schema_evolution
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否为 StarRocks 集群中的所有表启用 Fast Schema Evolution。有效值为
TRUE和FALSE(默认)。启用 Fast Schema Evolution 可以提高 schema 变更的速度,并在添加或删除列时减少资源使用。 - 引入版本: v3.2.0
NOTE
- StarRocks 存算分离集群从 v3.3.0 开始支持此参数。
- 如果您需要为特定表配置 Fast Schema Evolution,例如禁用特定表的 Fast Schema Evolution,您可以在表创建时设置表属性
fast_schema_evolution。
enable_online_optimize_table
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 控制 StarRocks 在创建优化作业时是否使用非阻塞在线优化路径。当
enable_online_optimize_table为 true 且目标表满足兼容性检查(无分区/键/排序规范,分布不是RandomDistributionDesc,存储类型不是COLUMN_WITH_ROW,已启用复制存储,且该表不是云原生表或物化视图)时,规划器会创建一个OnlineOptimizeJobV2以在不阻塞写入的情况下执行优化。如果为 false 或任何兼容性条件失败,StarRocks 将回退到OptimizeJobV2,这可能会在优化期间阻塞写入操作。 - 引入版本: v3.3.3, v3.4.0, v3.5.0
enable_strict_storage_medium_check
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: FE 在用户创建表时是否严格检查 BE 的存储介质。如果此参数设置为
TRUE,FE 会在用户创建表时检查 BE 的存储介质,如果 BE 的存储介质与 CREATE TABLE 语句中指定的storage_medium参数不同,则返回错误。例如,CREATE TABLE 语句中指定的存储介质是 SSD,但 BE 的实际存储介质是 HDD。因此,表创建失败。如果此参数为FALSE,FE 在用户创建表时不会检查 BE 的存储介质。 - 引入版本: -
max_bucket_number_per_partition
- 默认值: 1024
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: 一个分区中可以创建的最大 bucket 数量。
- 引入版本: v3.3.2
max_column_number_per_table
- 默认值: 10000
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: 一个表中可以创建的最大列数。
- 引入版本: v3.3.2
max_dynamic_partition_num
- 默认值: 500
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: 限制分析或创建动态分区表时可一次性创建的最大分区数。在动态分区属性验证期间,
systemtask_runs_max_history_number计算预期分区(结束偏移量 + 历史分区号),如果总数超过max_dynamic_partition_num,则抛出 DDL 错误。仅当您预期合法的大分区范围时才增加此值;增加它允许创建更多分区,但会增加元数据大小、调度工作和操作复杂性。 - 引入版本: v3.2.0
max_partition_number_per_table
- 默认值: 100000
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: 一个表中可以创建的最大分区数。
- 引入版本: v3.3.2
max_task_consecutive_fail_count
- 默认值: 10
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: 任务在调度器自动暂停它之前可能连续失败的最大次数。当
TaskSource.MV.equals(task.getSource())且max_task_consecutive_fail_count大于 0 时,如果任务的连续失败计数达到或超过max_task_consecutive_fail_count,任务将通过 TaskManager 暂停,并且对于物化视图任务,物化视图将失效。抛出异常,指示暂停以及如何重新激活(例如,ALTER MATERIALIZED VIEW <mv_name> ACTIVE)。将此项设置为 0 或负值以禁用自动暂停。 - 引入版本: -
partition_recycle_retention_period_secs
- 默认值: 1800
- 类型: Long
- 单位: 秒