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 参数
日志
audit_log_delete_age
- 默认值: 30d
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 审计日志文件的保留期限。默认值
30d指定每个审计日志文件可以保留 30 天。StarRocks 会检查每个审计日志文件,并删除 30 天前生成的那些。 - 引入版本: -
audit_log_dir
- 默认值:
StarRocksFE.STARROCKS_HOME_DIR+ "/log" - 类型: String
- 单位: -
- 是否可变: No
- 描述: 存储审计日志文件的目录。
- 引入版本: -
audit_log_enable_compress
- 默认值: false
- 类型: Boolean
- 单位: N/A
- 是否可变: No
- 描述: 当为 true 时,生成的 Log4j2 配置会将 ".gz" 后缀附加到轮转的审计日志文件名 (fe.audit.log.*) 中,以便 Log4j2 在轮转时生成压缩的 (.gz) 归档审计日志文件。此设置在 FE 启动期间在 Log4jConfig.initLogging 中读取,并应用于审计日志的 RollingFile appender;它仅影响轮转/归档文件,而不影响活动审计日志。由于该值在启动时初始化,因此更改它需要重启 FE 才能生效。与审计日志轮转设置 (
audit_log_dir、audit_log_roll_interval、audit_roll_maxsize、audit_log_roll_num) 一起使用。 - 引入版本: 3.2.12
audit_log_json_format
- 默认值: false
- 类型: Boolean
- 单位: N/A
- 是否可变: Yes
- 描述: 当为 true 时,FE 审计事件将以结构化 JSON (Jackson ObjectMapper 序列化带注解的 AuditEvent 字段的 Map) 的形式发出,而不是默认的管道分隔的 "key=value" 字符串。此设置会影响 AuditLogBuilder 处理的所有内置审计接收器:连接审计、查询审计、大查询审计(当事件符合条件时,大查询阈值字段会添加到 JSON 中)和慢审计输出。用于大查询阈值的字段和 "features" 字段会进行特殊处理(从普通审计条目中排除;根据适用情况包含在大查询或功能日志中)。启用此功能可使日志可供日志收集器或 SIEM 机器解析;请注意,它会更改日志格式,可能需要更新任何期望旧版管道分隔格式的现有解析器。
- 引入版本: 3.2.7
audit_log_modules
- 默认值:
slow_query, query - 类型: String[]
- 单位: -
- 是否可变: No
- 描述: StarRocks 为其生成审计日志条目的模块。默认情况下,StarRocks 为
slow_query模块和query模块生成审计日志。connection模块从 v3.0 版本开始支持。模块名称用逗号 (,) 和空格分隔。 - 引入版本: -
audit_log_roll_interval
- 默认值: DAY
- 类型: String
- 单位: -
- 是否可变: No
- 描述: StarRocks 轮转审计日志条目的时间间隔。有效值:
DAY和HOUR。- 如果此参数设置为
DAY,则在审计日志文件名称中添加yyyyMMdd格式的后缀。 - 如果此参数设置为
HOUR,则在审计日志文件名称中添加yyyyMMddHH格式的后缀。
- 如果此参数设置为
- 引入版本: -
audit_log_roll_num
- 默认值: 90
- 类型: Int
- 单位: -
- 是否可变: No
- 描述: 在
audit_log_roll_interval参数指定的每个保留期内,可以保留的审计日志文件的最大数量。 - 引入版本: -
bdbje_log_level
- 默认值: INFO
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 控制 StarRocks 中 Berkeley DB Java Edition (BDB JE) 使用的日志级别。在 BDB 环境初始化 BDBEnvironment.initConfigs() 期间,此值将应用于
com.sleepycat.je包的 Java 日志记录器和 BDB JE 环境文件日志记录级别 (EnvironmentConfig.FILE_LOGGING_LEVEL)。接受标准的 java.util.logging.Level 名称,例如 SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST、ALL、OFF。设置为 ALL 可启用所有日志消息。增加详细程度将提高日志量,并可能影响磁盘 I/O 和性能;该值在 BDB 环境初始化时读取,因此仅在环境(重新)初始化后生效。 - 引入版本: v3.2.0
big_query_log_delete_age
- 默认值: 7d
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 控制 FE 大查询日志文件 (
fe.big_query.log.*) 在自动删除前的保留时间。该值作为 IfLastModified age 传递给 Log4j 的删除策略 — 任何最后修改时间早于此值的轮转大查询日志都将被删除。支持的后缀包括d(天)、h(小时)、m(分钟)和s(秒)。示例:7d(7 天)、10h(10 小时)、60m(60 分钟)和120s(120 秒)。此项与big_query_log_roll_interval和big_query_log_roll_num共同决定哪些文件被保留或清除。 - 引入版本: v3.2.0
big_query_log_dir
- 默认值:
Config.STARROCKS_HOME_DIR + "/log" - 类型: String
- 单位: -
- 是否可变: No
- 描述: FE 写入大查询 dump 日志 (
fe.big_query.log.*) 的目录。Log4j 配置使用此路径为fe.big_query.log及其轮转文件创建 RollingFile appender。轮转和保留由big_query_log_roll_interval(基于时间的后缀)、log_roll_size_mb(大小触发器)、big_query_log_roll_num(最大文件数)和big_query_log_delete_age(基于年龄的删除)控制。对于超过用户定义阈值(例如big_query_log_cpu_second_threshold、big_query_log_scan_rows_threshold或big_query_log_scan_bytes_threshold)的查询,会记录大查询记录。使用big_query_log_modules控制哪些模块记录到此文件中。 - 引入版本: v3.2.0
big_query_log_modules
- 默认值:
{"query"} - 类型: String[]
- 单位: -
- 是否可变: No
- 描述: 启用每个模块大查询日志记录的模块名称后缀列表。典型值是逻辑组件名称。例如,默认的
query会生成big_query.query。 - 引入版本: v3.2.0
big_query_log_roll_interval
- 默认值:
"DAY" - 类型: String
- 单位: -
- 是否可变: No
- 描述: 指定用于构建
big_query日志 appender 滚动文件名称日期部分的时间间隔。有效值(不区分大小写)为DAY(默认)和HOUR。DAY生成每日模式 ("%d{yyyyMMdd}"),HOUR生成每小时模式 ("%d{yyyyMMddHH}")。该值与基于大小的轮转 (big_query_roll_maxsize) 和基于索引的轮转 (big_query_log_roll_num) 结合,形成 RollingFile filePattern。无效值会导致日志配置生成失败 (IOException),并可能阻止日志初始化或重新配置。与big_query_log_dir、big_query_roll_maxsize、big_query_log_roll_num和big_query_log_delete_age一起使用。 - 引入版本: v3.2.0
big_query_log_roll_num
- 默认值: 10
- 类型: Int
- 单位: -
- 是否可变: No
- 描述: 每个
big_query_log_roll_interval保留的轮转 FE 大查询日志文件的最大数量。此值绑定到 RollingFile appender 的 DefaultRolloverStrategymax属性,用于fe.big_query.log;当日志轮转时(按时间或按log_roll_size_mb),StarRocks 最多保留big_query_log_roll_num个索引文件(filePattern 使用时间后缀加索引)。超过此数量的文件可能会被轮转删除,big_query_log_delete_age还可以根据最后修改时间删除文件。 - 引入版本: v3.2.0
dump_log_delete_age
- 默认值: 7d
- 类型: String
- 单位: -
- 是否可变: No
- 描述: dump 日志文件的保留期限。默认值
7d指定每个 dump 日志文件可以保留 7 天。StarRocks 会检查每个 dump 日志文件,并删除 7 天前生成的那些。 - 引入版本: -
dump_log_dir
- 默认值:
StarRocksFE.STARROCKS_HOME_DIR+ "/log" - 类型: String
- 单位: -
- 是否可变: No
- 描述: 存储 dump 日志文件的目录。
- 引入版本: -
dump_log_modules
- 默认值: query
- 类型: String[]
- 单位: -
- 是否可变: No
- 描述: StarRocks 为其生成 dump 日志条目的模块。默认情况下,StarRocks 为 query 模块生成 dump 日志。模块名称用逗号 (,) 和空格分隔。
- 引入版本: -
dump_log_roll_interval
- 默认值: DAY
- 类型: String
- 单位: -
- 是否可变: No
- 描述: StarRocks 轮转 dump 日志条目的时间间隔。有效 值:
DAY和HOUR。- 如果此参数设置为
DAY,则在 dump 日志文件名称中添加yyyyMMdd格式的后缀。 - 如果此参数设置为
HOUR,则在 dump 日志文件名称中添加yyyyMMddHH格式的后缀。
- 如果此参数设置为
- 引入版本: -
dump_log_roll_num
- 默认值: 10
- 类型: Int
- 单位: -
- 是否可变: No
- 描述: 在
dump_log_roll_interval参数指定的每个保留期内,可以保留的 dump 日志文件的最大数量。 - 引入版本: -
edit_log_write_slow_log_threshold_ms
- 默认值: 2000
- 类型: Int
- 单位: 毫秒
- 是否可变: Yes
- 描述: JournalWriter 用于检测和记录慢速 edit-log 批量写入的阈值(单位为毫秒)。批量提交后,如果批量持续时间超过此值,JournalWriter 将发出 WARN 日志,其中包含批量大小、持续时间和当前 Journal 队列大小(以每约 2 秒一次的速率限制)。此设置仅控制 FE Leader 上潜在 IO 或复制延迟的日志记录/警报;它不改变提交或轮转行为(请参阅
edit_log_roll_num和与提交相关的设置)。无论此阈值如何,指标更新仍会 发生。 - 引入版本: v3.2.3
enable_audit_sql
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: No
- 描述: 当此项设置为
true时,FE 审计子系统会将 ConnectProcessor 处理的 SQL 语句文本记录到 FE 审计日志 (fe.audit.log) 中。存储的语句遵循其他控制:加密语句将被 redacted (AuditEncryptionChecker),如果设置了enable_sql_desensitize_in_log,敏感凭据可能会被 redacted 或脱敏,并且 digest 记录由enable_sql_digest控制。当设置为false时,ConnectProcessor 会在审计事件中将语句文本替换为 "?" — 其他审计字段(用户、主机、持续时间、状态、通过qe_slow_log_ms进行的慢查询检测以及指标)仍会记录。启用 SQL 审计会增加取证和故障排除的可见性,但可能会暴露敏感的 SQL 内容并增加日志量和 I/O;禁用它会提高隐私性,但代价是审计日志中会丢失完整的语句可见性。 - 引入版本: -
enable_profile_log
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: No
- 描述: 是否启用 profile 日志。启用此功能后,FE 会将每个查询的 profile 日志(由
ProfileManager生成的序列化queryDetailJSON)写入 profile 日志接收器。此日志记录仅在enable_collect_query_detail_info也启用时执行;当enable_profile_log_compress启用时,JSON 可能会在日志记录前进行 gzip 压缩。Profile 日志文件由profile_log_dir、profile_log_roll_num、profile_log_roll_interval管理,并根据profile_log_delete_age进行轮转/删除(支持7d、10h、60m、120s等格式)。禁用此功能会停止写入 profile 日志(减少磁盘 I/O、压缩 CPU 和存储使用)。 - 引入版本: v3.2.5
enable_qe_slow_log
- 默认值: true
- 类型: Boolean
- 单位: N/A
- 是否可变: Yes
- 描述: 当启用时,FE 内置审计插件 (AuditLogBuilder) 将把其测量执行时间("Time" 字段)超过
qe_slow_log_ms配置阈值的查询事件写入慢查询审计日志 (AuditLog.getSlowAudit)。如果禁用,这些慢查询条目将被抑制(常规查询和连接审计日志不受影响)。慢审计条目遵循全局audit_log_json_format设置(JSON 与纯字符串)。使用此标志可以独立于常规审计日志记录控制慢查询审计生成量;当qe_slow_log_ms较低或工作负载产生许多长时间运行的查询时,关闭它可能会减少日志 I/O。 - 引入版本: 3.2.11
enable_sql_desensitize_in_log
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: No
- 描述: 当此项设置为
true时,系统会在将敏感 SQL 内容写入日志和查询详细记录之前替换或隐藏这些内容。遵循此配置的代码路径包括 ConnectProcessor.formatStmt(审计日志)、StmtExecutor.addRunningQueryDetail(查询详细信息)和 SimpleExecutor.formatSQL(内部执行器日志)。启用此功能后,无效的 SQL 可能会被替换为固定的脱敏消息,凭据(用户/密码)将被隐藏,并且 SQL 格式化程序必须生成 sanitized 表示(它还可以启用摘要式输出)。这减少了审计/内部日志中敏感文字和凭据的泄露,但也意味着日志和查询详细信息不再包含原始完整 SQL 文本(这可能会影响回放或调试)。 - 引入版本: -
internal_log_delete_age
- 默认值: 7d
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 指定 FE 内部日志文件(写入
internal_log_dir)的保留期限。该值是一个持续时间字符串。支持的后缀:d(天)、h(小时)、m(分钟)、s(秒)。示例:7d(7 天)、10h(10 小时)、60m(60 分钟)、120s(120 秒)。此项作为<IfLastModified age="..."/>谓词替换到 Log4j 配置中,该谓词由 RollingFile Delete 策略使用。 最后修改时间早于此持续时间的文件将在日志轮转期间删除。增加此值可更快释放磁盘空间,或减少此值可更长时间保留内部物化视图或统计信息日志。 - 引入版本: v3.2.4
internal_log_dir
- 默认值:
Config.STARROCKS_HOME_DIR+ "/log" - 类型: String
- 单位: -
- 是否可变: No
- 描述: FE 日志记录子系统用于存储内部日志 (
fe.internal.log) 的目录。此配置将替换到 Log4j 配置中,并决定 InternalFile appender 在何处写入内部/物化视图/统计信息日志,以及internal.<module>下的每个模块日志记录器在何处放置其文件。确保目录存在、可写并具有足够的磁盘空间。此目录中文件的日志轮转和保留由log_roll_size_mb、internal_log_roll_num、internal_log_delete_age和internal_log_roll_interval控制。如果sys_log_to_console启用,内部日志可能会写入控制台而不是此目录。 - 引入版本: v3.2.4
internal_log_json_format
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 当此项设置为
true时,内部统计/审计条目将作为紧凑的 JSON 对象写入统计审计日志记录器。JSON 包含键 "executeType" (InternalType: QUERY 或 DML)、"queryId"、"sql" 和 "time"(已用毫秒)。当设置为false时,相同的信息将记录为单个格式化文本行("statistic execute: ... | QueryId: [...] | SQL: ...")。启用 JSON 可改进机器解析并与日志处理器集成,但也会导致原始 SQL 文本包含在日志中,这可能会暴露敏感信息并增加日志大小。 - 引入版本: -
internal_log_modules
- 默认值:
{"base", "statistic"} - 类型: String[]
- 单位: -
- 是否可变: No
- 描述: 将接收专用内部日志记录的模块标识符列表。对于每个条目 X,Log4j 将创建一个名为
internal.<X>的日志记录器,其级别为 INFO,并且 additivity="false"。这些日志记录器被路由到内部 appender(写入fe.internal.log),或者在sys_log_to_console启用时路由到控制台。根据需要使用短名称或包片段 — 确切的日志记录器名称变为internal.+ 配置的字符串。内部日志文件轮转和保留遵循internal_log_dir、internal_log_roll_num、internal_log_delete_age、internal_log_roll_interval和log_roll_size_mb。添加模块会导致其运行时消息分离到内部日志记录器流中,以便于调试和审计。 - 引入版本: v3.2.4
internal_log_roll_interval
- 默认值: DAY
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 控制 FE 内部日志 appender 的基于时间的滚动间隔。接受的值(不区分大小写)为
HOUR和DAY。HOUR生成每小时的文件模式 ("%d{yyyyMMddHH}"),DAY生成每日文件模式 ("%d{yyyyMMdd}"),这些模式由 RollingFile TimeBasedTriggeringPolicy 用于命名轮转的fe.internal.log文件。无效值会导致初始化失败(构建活动 Log4j 配置时抛出 IOException)。滚动行为还取决于相关设置,例如internal_log_dir、internal_roll_maxsize、internal_log_roll_num和internal_log_delete_age。 - 引入版本: v3.2.4
internal_log_roll_num
- 默认值: 90
- 类型: Int
- 单位: -
- 是否可变: No
- 描述: 为内部 appender (
fe.internal.log) 保留的轮转 FE 内部日志文件的最大数量。此值用作 Log4j DefaultRolloverStrategymax属性;当发生轮转时,StarRocks 最多保留internal_log_roll_num个归档文件并删除旧文件(也受internal_log_delete_age控制)。较低的值会减少磁盘使用,但会缩短日志历史记录;较高的值会保留更多的历史内部日志。此项与internal_log_dir、internal_log_roll_interval和internal_roll_maxsize协同工作。 - 引入版本: v3.2.4
log_cleaner_audit_log_min_retention_days
- 默认值: 3
- 类型: Int
- 单位: 天
- 是否可变: Yes
- 描述: 审计日志文件的最小保留天数。早于此时间的审计日志文件即使磁盘使用率很高也不会被删除。这确保了审计日志为合规性和故障排除目的而保留。
- 引入版本: -
log_cleaner_check_interval_second
- 默认值: 300
- 类型: Int
- 单位: 秒
- 是否可变: Yes
- 描述: 检查磁盘使用情况和清理日志的间隔(秒)。清理器会定期检查每个日志目录的磁盘使用情况,并在必要时触发清理。默认值为 300 秒(5 分钟)。
- 引入版本: -
log_cleaner_disk_usage_target
- 默认值: 60
- 类型: Int
- 单位: 百分比
- 是否可变: Yes
- 描述: 日志清理后的目标磁盘使用率(百分比)。日志清理将持续进行,直到磁盘使用率降至此阈值以下。清理器会逐个删除最旧的日志文件,直到达到目标。
- 引入版本: -
log_cleaner_disk_usage_threshold
- 默认值: 80
- 类型: Int
- 单位: 百分比
- 是否可变: Yes
- 描述: 触发日志清理的磁盘使用率阈值(百分比)。当磁盘使用率超过此阈值时,日志清理将开始。清理器会独立检查每个配置的日志目录,并处理超过此阈值的目录。
- 引入版本: -
log_cleaner_disk_util_based_enable
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 启用基于磁盘使用率的自动日志清理。启用后,当磁盘使用率超过阈值时,将清理日志。日志清理器作为 FE 节点上的后台守护程序运行,有助于防止日志文件累积导致磁盘空间耗尽。
- 引入版本: -
log_plan_cancelled_by_crash_be
- 默认值: true
- 类型: boolean
- 单位: -
- 是否可变: Yes
- 描述: 当查询因 BE 崩溃或 RPC 异常而取消时,是否启用查询执行计划日志记录。启用此功能后,当查询因 BE 崩溃或
RpcException而取消时,StarRocks 会将查询执行计划(TExplainLevel.COSTS级别)记录为 WARN 条目。日志条目包括 QueryId、SQL 和 COSTS 计划;在 ExecuteExceptionHandler 路径中,还会记录异常堆栈跟踪。当enable_collect_query_detail_info启用时,日志记录会被跳过(计划随后存储在查询详细信息中)—— 在代码路径中,通过验证查询详细信息是否为 null 来执行检查。请注意,在 ExecuteExceptionHandler 中,计划仅在第一次重试时 (retryTime == 0) 记录。启用此功能可能会增加日志量,因为完整的 COSTS 计划可能很大。 - 引入版本: v3.2.0
log_register_and_unregister_query_id
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否允许 FE 记录来自 QeProcessorImpl 的查询注册和注销消息(例如,
"register query id = {}"和"deregister query id = {}")。仅当查询具有非空 ConnectContext 且命令不是COM_STMT_EXECUTE或会话变量isAuditExecuteStmt()为 true 时才发出日志。由于这些消息是为每个查询生命周期事件写入的,因此启用此功能可能会产生大量日志并成为高并发环境中的吞吐量瓶颈。启用它用于调试或审计;禁用它以减少日志记录开销并提高性能。 - 引入版本: v3.3.0, v3.4.0, v3.5.0
log_roll_size_mb
- 默认值: 1024
- 类型: Int
- 单位: MB
- 是否可变: No
- 描述: 系统日志文件或审计日志文件的最大大小。
- 引入版本: -
proc_profile_file_retained_days
- 默认值: 1
- 类型: Int
- 单位: 天
- 是否可变: Yes
- 描述: 保留
sys_log_dir/proc_profile下生成的进程分析文件(CPU 和内存)的天数。ProcProfileCollector 通过将proc_profile_file_retained_days天数从当前时间(格式为 yyyyMMdd-HHmmss)中减去来计算截止时间,并删除时间戳部分在字典序上早于该截止时间的分析文件(即timePart.compareTo(timeToDelete) < 0)。文件删除还遵循由proc_profile_file_retained_size_bytes控制的基于大小的截止时间。分析文件使用cpu-profile-和mem-profile-前缀,并在收集后进行压缩。 - 引入版本: v3.2.12
proc_profile_file_retained_size_bytes
- 默认值: 2L * 1024 * 1024 * 1024 (2147483648)
- 类型: Long
- 单位: 字节
- 是否可变: Yes
- 描述: 在分析目录下保留的收集到的 CPU 和内存分析文件(文件名前缀为
cpu-profile-和mem-profile-)的最大总字节数。当有效分析文件的总和超过proc_profile_file_retained_size_bytes时,收集器将删除最旧的分析文件,直到剩余总大小小于或等于proc_profile_file_retained_size_bytes。早于proc_profile_file_retained_days的文件也将被删除,无论大小如何。此设置控制分析归档的磁盘使用情况,并与proc_profile_file_retained_days交互以确定删除顺序和保留。 - 引入版本: v3.2.12
profile_log_delete_age
- 默认值: 1d
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 控制 FE profile 日志文件在符合删除条件之前保留多长时间。该值注入到 Log4j 的
<IfLastModified age="..."/>策略(通过Log4jConfig)中,并与轮转设置(如profile_log_roll_interval和profile_log_roll_num)一起应用。支持的后缀:d(天)、h(小时)、m(分钟)、s(秒)。例如:7d(7 天)、10h(10 小时)、60m(60 分钟)、120s(120 秒)。 - 引入版本: v3.2.5
profile_log_dir
- 默认值:
Config.STARROCKS_HOME_DIR+ "/log" - 类型: String
- 单位: -
- 是否可变: No
- 描述: FE profile 日志的写入目录。Log4jConfig 使用此值放置与 profile 相关的 appender(在此目录下创建
fe.profile.log和fe.features.log等文件)。这些文件的轮转和保留由profile_log_roll_size_mb、profile_log_roll_num和profile_log_delete_age控制;时间戳后缀格式由profile_log_roll_interval控制(支持 DAY 或 HOUR)。由于默认目录位于STARROCKS_HOME_DIR下,请确保 FE 进程对此目录具有写入和轮转/删除权限。 - 引入版本: v3.2.5
profile_log_roll_interval
- 默认值: DAY
- 类型: String
- 单位: -
- 是否可变: No
- 描述: 控制用于生成 profile 日志文件名日期部分的时间粒度。有效值(不区分大小写)为
HOUR和DAY。HOUR生成模式"%d{yyyyMMddHH}"(每小时时间桶),DAY生成"%d{yyyyMMdd}"(每日时间桶)。此值在 Log4j 配置中计算profile_file_pattern时使用,并且仅影响轮转文件名称中基于时间的组件;基于大小的轮转仍由profile_log_roll_size_mb控制,保留由profile_log_roll_num/profile_log_delete_age控制。无效值会导致日志初始化期间发生 IOException(错误消息:"profile_log_roll_interval config error: <value>")。对于高容量 profiling,选择HOUR以限制每小时的文件大小,或选择DAY进行每日聚合。 - 引入版本: v3.2.5
profile_log_roll_num
- 默认值: 5
- 类型: Int
- 单位: -
- 是否可变: No
- 描述: 指定 Log4j 的 DefaultRolloverStrategy 为 profile 日志记录器保留的最大轮转 profile 日志文件数。此值作为
${profile_log_roll_num}注入到日志 XML 中(例如<DefaultRolloverStrategy max="${profile_log_roll_num}" fileIndex="min">)。轮转由profile_log_roll_size_mb或profile_log_roll_interval触发;当发生轮转时,Log4j 最多保留这些索引文件,旧的索引文件将符合删除条件。磁盘上的实际保留也受profile_log_delete_age和profile_log_dir位置的影响。较低的值会减少磁盘使用,但会限制保留的历史记录;较高的值会保留更多的历史 profile 日志。 - 引入版本: v3.2.5
profile_log_roll_size_mb
- 默认值: 1024
- 类型: Int
- 单位: MB
- 是否可变: No
- 描述: 设置触发 FE profile 日志文件基于大小轮转的大小阈值(以兆字节为单位)。此值由 Log4j RollingFile SizeBasedTriggeringPolicy 用于
ProfileFileappender;当 profile 日志超过profile_log_roll_size_mb时,它将被轮转。当达到profile_log_roll_interval时,也可以按时间进行轮转——任一条件都会触发轮转。结合profile_log_roll_num和profile_log_delete_age,此项控制保留多少历史 profile 文件以及何时删除旧文件。轮转文件的压缩由enable_profile_log_compress控制。 - 引入版本: v3.2.5
qe_slow_log_ms
- 默认值: 5000
- 类型: Long
- 单位: 毫秒
- 是否可变: Yes
- 描述: 用于判断查询是否为慢查询的阈值。如果查询的响应时间超过此阈值,则会在 fe.audit.log 中记录为慢查询。
- 引入版本: -
slow_lock_log_every_ms
- 默认值: 3000L
- 类型: Long
- 单位: 毫秒
- 是否可变: Yes
- 描述: 在为同一 SlowLockLogStats 实例发出另一个“慢锁”警告之前,等待的最短间隔(以毫秒为单位)。LockUtils 在锁等待超过
slow_lock_threshold_ms后检查此值,并会抑制额外的警告,直到自上次记录慢锁事件以来已过去slow_lock_log_every_ms毫秒。使用更大的值可在长时间争用期间减少日志量,或使用更小的值以获得更频繁的诊断。更改在运行时对后续检查生效。 - 引入版本: v3.2.0
slow_lock_print_stack
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否允许 LockManager 在
logSlowLockTrace发出的慢锁警告的 JSON 负载中包含拥有线程的完整堆栈跟踪("stack" 数组通过LogUtil.getStackTraceToJsonArray填充,start=0且max=Short.MAX_VALUE)。此配置仅控制当锁获取超过由slow_lock_threshold_ms配置的阈值时显示的锁所有者的额外堆栈信息。启用此功能通过提供持有锁的精确线程堆栈来帮助调试;禁用它可减少日志量和在高并发环境中捕获和序列化堆栈跟踪导致的 CPU/内存开销。 - 引入版本: v3.3.16, v3.4.5, v3.5.1