编辑

参数配置

服务启动之后,在运行的过程中可能会出现调整配置参数的情况,以满足业务需求。本文介绍部分 BE、FE、Broker 和系统参数的配置项以及修改方式,部分 FE 配置项为动态参数,支持在线修改,其余 FE、BE 以及 Broker 配置项生效都需在修改相应 conf 文件后重启相应服务。

FE 配置项

FE 部分配置项为动态参数,支持在线修改,部分配置项为静态参数,修改后需要重启fe服务,才能生效。

FE 动态参数

FE 部分配置项即动态参数支持在线修改,可通过

ADMIN SET FRONTEND CONFIG ("key" = "value");

命令进行参数更新,其余参数的变更需要在对应 fe.conf 文件中修改并重启生效。

以下是 FE 动态参数列表:

  • LOG
配置项默认值作用
qe_slow_log_ms5000Slow query 的认定时长,默认 5000ms
  • Server
配置项默认值作用
shutdown_hook_timeout_sec60FE 优雅退出的等待时间
  • 元数据与集群管理
配置项默认值作用
catalog_try_lock_timeout_ms5000Catalog Lock 获取的超时时长
edit_log_roll_num50000Image 日志拆分大小
ignore_unknown_log_idFALSE是否忽略未知的 logID。当 FE 回滚到低版本时,可能存在低版本 BE 无法识别的 logID。如果为 TRUE,则 FE 会忽略这些 logID;否则 FE 会退出
metadata_checkopoint_memory_threshold60如果 JVM 内存使用率超过该阈值,停止生成元数据的 Checkpoint,防止 OOM
force_do_metadata_checkpointFALSE无论 JVM 内存使用率多少,都会产生元数据的 Checkpoint
ignore_meta_checkFALSE忽略元数据落后的情形
drop_backend_after_decommissionTRUEBE 被下线后,是否删除该 BE
catalog_try_lock_timeout_ms5000Catalog Lock 获取的超时时长
enable_collect_query_detail_infofalse是否支持通过 StarRocks Manager 查看 Profile
  • Query Engine
配置项默认值作用
expr_children_limit10000查询中 in 中可以涉及的数目
expr_depth_limit3000查询嵌套的层次
max_allowed_in_element_num_of_delete10000DELETE 语句中 IN 谓词最多允许的元素数量
max_layout_length_per_row2147483647单行最大的长度,Integer.MAX_VALUE
disable_cluster_featureTRUE是否禁用逻辑集群功能
enable_materialized_viewTRUE是否允许创建物化视图
enable_decimal_v3TRUE是否开启 Decimal V3
enable_sql_blacklistFALSE是否开启 SQL Query 黑名单校验。如果开启,在黑名单中的 Query 不能被执行
dynamic_partition_check_interval_seconds600动态分区检查的时间周期
dynamic_partition_enableTRUE开启动态分区功能
max_partitions_in_one_batch4096批量创建分区时,分区数目的最大值
max_query_retry_time2FE 上查询重试的次数
max_create_table_timeout_second60建表最大超时时间
max_running_rollup_job_num_per_table1每个 Table 执行 Rollup 任务的最大并发度
max_planner_scalar_rewrite_num100000优化器重写 ScalarOperator 允许的最大次数
statistics_manager_sleep_time_sec60*10自动创建统计信息表的周期,默认 10min
statistic_collect_interval_sec120*60统计信息功能执行周期,默认 2h
statistic_update_interval_sec24 *60* 60统计信息 Job 的默认收集间隔时间,默认为 1 天
statistic_sample_collect_rows200000采样统计信息 Job 的默认采样行数,默认为 200000 行
enable_statistic_collectTRUE统计信息收集功能开关
enable_local_replica_selectionFALSE优化器优先选择与这个 FE 相同 IP 的 BE 节点上的 tablet
max_distribution_pruner_recursion_depth100分区裁剪允许的最大递归深度
  • 导入和导出
配置项默认值作用
load_straggler_wait_second300控制 BE 副本最大容忍的导入落后时长,超过这个时长就进行克隆
desired_max_waiting_jobs100最多等待的任务,适用于所有的任务,建表、导入、schema change
max_running_txn_num_per_db100并发导入的任务数
max_load_timeout_second259200适用于所有导入,最大超时,3 天
min_load_timeout_second1适用于所有导入,最小超时,1 秒
load_parallel_instance_num1单个 BE 上并发实例数,默认 1 个
vectorized_load_enableTRUE开启向量化 Broker 导出和导入
enable_vectorized_file_loadTRUE开启向量化导入 CSV/JSON/Parquet 和 Spark 导入
disable_hadoop_loadFALSE禁用从 Hadoop 导入
disable_load_jobFALSE不接收任何导入任务,集群出问题时的止损措施
using_old_load_usage_patternFALSE如果为 TRUE,插入语句遇到错误时依然会返回 label 给用户
db_used_data_quota_update_interval_secs300更新数据库使用配额的时间周期
history_job_keep_max_second604800历史任务最大的保留时长,例如 schema change 任务,默认 7 天
label_keep_max_num1000一定时间内所保留导入任务的最大数量。
保留时间在 label_keep_max_second 中进行设置
label_keep_max_second259200label 保留时长,默认 3 天,保留太久会消耗很多内存
max_routine_load_job_num100最大的 routine load 作业数
max_routine_load_task_concurrent_num5每个 routine load 作业最大并发执行的 task 数
max_routine_load_task_num_per_be5每个 be 最大并发执行的 routine load task 数,需要小于等于 be 的配置 routine_load_thread_pool_size
max_routine_load_batch_size524288000每个 routine load task 导入的最大数据量,默认 500M
routine_load_task_consume_second3每个 routine load task 消费数据的最大时间,默认为 3s
routine_load_task_timeout_second15每个 routine load task 超时时间,默认 15s
max_tolerable_backend_down_num0如果故障的 BE 节点数超过该阈值,则不能自动恢复 Routine Load 作业
period_of_auto_resume_min5自动恢复 Routine Load 的时间间隔
spark_load_default_timeout_second86400Spark 导入的超时时间,默认 1 天
spark_home_default_dirSTARROCKS_HOME_DIR/lib/spark2xSpark 客户端根目录
stream_load_default_timeout_second600StreamLoad 超时时间,默认 10 分钟
max_stream_load_timeout_second259200Stream 导入的超时时间允许设置的最大值,默认 3 天
insert_load_default_timeout_second3600Insert Into 语句的超时时间,默认 1 小时
broker_load_default_timeout_second14400Broker Load 的超时时间,默认 4 个小时
min_bytes_per_broker_scanner67108864单个实例处理的最小数据量,默认 64MB
max_broker_concurrency100单个任务最大并发实例数,默认 100 个
mini_load_default_timeout_second3600小批量导入的超时时间,默认 1 小时
export_max_bytes_per_be_per_task268435456单个导出任务在单个 be 上导出的最大数据量,默认 256M
export_running_job_num_limit5导出作业最大的运行数目
export_task_default_timeout_second7200导出作业超时时长,默认 2 小时
empty_load_as_errorTRUE导入数据为空时,是否返回报错提示 all partitions have no load data。取值:
- TRUE:当导入数据为空时,则显示导入失败,并返回报错提示 all partitions have no load data
- FALSE:当导入数据为空时,则显示导入成功,并返回 OK,不返回报错提示。
  • 存储相关
配置项默认值作用
enable_strict_storage_medium_checkFALSE在创建表时,FE 是否检查 BE 的可用的存储介质空间
capacity_used_percent_high_water0.75Backend 上磁盘使用容量的度量值,超过 0.75 之后,尽量不在往这个 tablet 上发送建表,克隆的任务,直到恢复正常
storage_high_watermark_usage_percent85BE 存储目录下空间使用率的最大值
storage_min_left_capacity_bytes2 *1024* 1024*1024BE 存储目录下剩余空间的最小值,默认 2GB
storage_flood_stage_left_capacity_bytes1 *1024* 1024*1024如果剩余空间小于该值,会拒绝 Load Restore 作业。默认 1GB
storage_flood_stage_usage_percent95如果空间使用率超过该值,会拒绝 Load 和 Restore 作业
catalog_trash_expire_second86400删表/数据库之后,元数据在回收站中保留的时长,超过这个时长,数据就不可以在恢复
alter_table_timeout_second86400Schema change 超时时间
balance_load_disk_safe_threshold0.5disk_and_tablet 策略有效。如果所有 BE 的磁盘使用率低于 50%,认为磁盘使用均衡
balance_load_score_threshold0.1对于 be_load_score 策略,负载比平均负载低 10% 的 BE 处于低负载状态,比平均负载高 10% 的 BE 处于高负载状态,对于 disk_and_tablet 策略,如果最大和最小 BE 磁盘使用率之差高于 10%,认为磁盘使用不均衡,会触发 tablet 重新均衡
disable_balanceFALSE禁用 Tablet 调度
max_scheduling_tablets2000如果正在调度的 tablet 数量超过该值,跳过 tablet 均衡检查
max_balancing_tablets100如果正在均衡的 tablet 数量超过该值,跳过 tablet 重新均衡
disable_colocate_balanceFALSE禁用 Colocate Table 的副本均衡
recover_with_empty_tabletFALSE在 tablet 副本丢失/损坏时,使用空的 tablet 代替它。这样可以保证在有 tablet 副本丢失/损坏时,query 依然能被执行(但是由于缺失了数据,结果可能是错误的)
min_clone_task_timeout_sec3*60克隆 Tablet 的最小超时时间,默认 3min
max_clone_task_timeout_sec2 *60* 60克隆 Tablet 的最大超时时间,默认 2h
tablet_create_timeout_second1建表超时时长
tablet_delete_timeout_second2删除表的超时时间
tablet_repair_delay_factor_second60FE 控制进行副本修复的间隔
consistency_check_start_time23FE 发起副本一致性检测的起始时间
consistency_check_end_time4FE 发起副本一致性检测的终止时间
check_consistency_default_timeout_second600副本一致性检测的超时时间
  • 其他
配置项默认值作用
plugin_enableTRUE是否开启了插件功能。只能在 master 安装/卸载插件
max_small_file_number100允许存储小文件数目的最大值
max_small_file_size_bytes1024*1024存储文件的大小上限,默认 1MB
agent_task_resend_wait_time_ms5000当代理任务的创建时间被设置,并且距离现在超过该值,才能重新发送代理任务
backup_job_default_timeout_ms86400*1000Backup 作业的超时时间
report_queue_size100Disk/Task/Tablet 的 Report 的等待队列长度

FE 静态参数

以下 FE 配置项为静态参数,不支持在线修改,生效需在 fe.conf 中修改并重启 fe 服务。

  • LOG
配置项默认值作用
log_roll_size_mb1024日志拆分的大小,每 1G 拆分一个日志
sys_log_dirStarRocksFe.STARROCKS_HOME_DIR/log日志保留的目录
sys_log_levelINFO日志级别,INFO < WARN < ERROR < FATAL
sys_log_verbose_modules空字符串日志打印的模块,写 org.apache.starrocks.catalog 就只打印 catalog 模块下的日志
sys_log_roll_intervalDAY日志拆分的时间间隔
sys_log_delete_age7d日志删除的间隔
sys_log_roll_mode1024日志拆分的大小,每 1G 拆分一个日志
sys_log_roll_num10每个 sys_log_roll_interval 时间内,保留的日志文件数目
audit_log_dirstarrocksFe.STARROCKS_HOME_DIR/log审计日志保留的目录
audit_log_roll_num90审计日志保留的数目
audit_log_modules"slow_query", "query"审计日志打印的模块,默认保留 slow_query 和 query
audit_log_roll_intervalDAY审计日志拆分的时间间隔, DAY 或者 HOUR
audit_log_delete_age30d审计日志删除的间隔
audit_log_roll_modeTIME-DAY审计日志拆分模式
dump_log_dirSTARROCKS_HOME_DIR/logDump 日志的目录
dump_log_modules"query"Dump 日志打印的模块,默认保留 query
dump_log_roll_intervalDAY"Dump 日志拆分的时间间隔。日志文件的后缀为 yyyyMMdd(DAY)或 yyyyMMddHH(HOUR)"
dump_log_roll_num90每个 dump_log_roll_interval 时间内,保留的 Dump 日志文件数目
dump_log_delete_age30dDump 日志保留的时间长度
  • Server
配置项默认值作用
frontend_address0.0.0.0FE IP 地址
priority_networks空字符串以 CIDR 形式 10.10.10.0/24 指定 FE IP 地址,适用于机器有多个 IP,需要特殊指定的形式
http_port8030Http Server 的端口
http_backlog_num1024HTTP Server 的 backlog 队列长度
cluster_nameStarRocks ClusterWeb 页面中 Title 显示的集群名称
rpc_port9020FE 上的 thrift server 端口
thrift_backlog_num1024Thrift Server 的 backlog 队列长度
thrift_server_typeTHREAD_POOLFE 的 Thrift 服务使用的服务模型,SIMPLE/THREADED/THREAD_POOL
thrift_server_max_worker_threads4096Thrift Server 最大工作线程数
thrift_client_timeout_ms0Client 超时时间,等于 0 时永远不会超时
thrift_server_typeTHREAD_POOLFE 的 Thrift 服务使用的服务模型,SIMPLE/THREADED/THREAD_POOL
brpc_number_of_concurrent_requests_processed4096并发处理 BRPC 请求数目
brpc_idle_wait_max_time10000BRPC 的空闲等待时间(ms),默认 10s
enable_brpc_share_channelTRUE在 BRPC Client 之间共享 channel
query_port9030FE 上的 mysql server 端口
mysql_service_nio_enabledFALSEFE 连接服务的 nio 是否开启
mysql_service_io_threads_num4FE 连接服务线程数
mysql_nio_backlog_num1024MySQL Server 的 backlog 队列长度
max_mysql_service_task_threads_num4096MySQL Server 处理任务的最大线程数
max_connection_scheduler_threads_num4096连接定时器的线程池的最大线程数
qe_max_connection1024FE 上最多接收的连接数,适用于所有用户
check_java_versionTRUE检查执行时的版本与编译的 Java 版本是否兼容
  • 元数据与集群管理
配置项默认值作用
meta_dirStarRocksFe.STARROCKS_HOME_DIR/meta元数据保留目录
heartbeat_mgr_threads_num8HeartbeatMgr 中发送心跳任务的线程数
heartbeat_mgr_blocking_queue_size1024HeartbeatMgr 中发送心跳任务的线程池的队列长度
metadata_failure_recoveryFALSE强制重置 FE 的元数据,慎用
edit_log_port9010FE Group(Master, Follower, Observer)之间通信用的端口
edit_log_typeBDBEdit log 的类型,只能为 BDB
bdbje_heartbeat_timeout_second30BDBJE 心跳超时的间隔
bdbje_lock_timeout_second1BDBJE 锁超时的间隔
max_bdbje_clock_delta_ms5000Master 与 Non-master 最大容忍的时钟偏移
txn_rollback_limit100事务回滚的上限
bdbje_replica_ack_timeout_second10BDBJE Master 等待足够多的 FOLLOWER ACK 的最长时间
master_sync_policySYNCMaster 日志刷盘的方式,默认是 SYNC
replica_sync_policySYNCFollower 日志刷盘的方式,默认是 SYNC
replica_ack_policySIMPLE_MAJORITY日志被认为有效的形式,默认是多数派返回确认消息,就认为生效
meta_delay_toleration_second300非 leader 节点容忍的最大元数据落后的时间
cluster_id-1相同 cluster_id 的 FE/BE 节点属于同一个集群。等于-1 则在 leader FE 第一次启动时随机生成一个
  • Query Engine
配置项默认值作用
disable_colocate_joinFALSEFALSE 表示开启 Colocate Join,TRUE 表示不开启 Colocate Join
enable_udfFALSE是否开启 UDF
publish_version_interval_ms10发送版本生效任务的时间间隔
statistic_cache_columns10_0000缓存统计信息表的行数
  • 导入和导出
配置项默认值作用
async_load_task_pool_size10导入任务执行的线程池大小
load_checker_interval_second5导入轮询的间隔
transaction_clean_interval_second30清理已结束事务的周期
label_clean_interval_second14400label 清理的间隔
spark_dpp_version1.0.0Spark dpp 版本
spark_resource_path空字符串Spark 依赖包的根目录
spark_launcher_log_dirsys_log_dir/spark_launcher_logSpark 日志目录
yarn_client_pathSTARROCKS_HOME_DIR/lib/yarn-client/hadoop/bin/yarnYarn 客户端根目录
yarn_config_dirSTARROCKS_HOME_DIR/lib/yarn-configYarn 配置文件目录
export_checker_interval_second5导出线程轮询间隔
export_task_pool_size5导出任务线程池大小,默认 5 个
export_checker_interval_second5导出作业调度器的调度周期
  • 存储相关
配置项默认值作用
storage_cooldown_second2592000从 Table 创建时间点开始计算,自动降冷(从 SSD 介质迁移到 HDD 介质)的时延。单位为秒。默认为 30 天。
default_storage_mediumHDD默认的存储介质,值为 HDD/SSD。在创建表/分区时,如果没有指定存储介质,那么会使用该值
schedule_slot_num_per_path2一个 BE 存储目录能够同时执行 tablet 相关任务的数目
tablet_balancer_strategydisk_and_tabletTablet 均衡策略,值为 disk_and_tablet 或 be_load_score
tablet_stat_update_interval_second300FE 向每个 BE 请求收集 tablet 信息的时间间隔,默认 5min
  • 其他
配置项默认值作用
plugin_dirSTARROCKS_HOME_DIR/plugins插件安装的目录
small_file_dirSTARROCKS_HOME_DIR/small_files小文件的根目录
max_agent_task_threads_num4096代理任务的线程池的最大线程数
authentication_ldap_simple_bind_base_dn""用户的 base DN,指定用户的检索范围
authentication_ldap_simple_bind_root_dn""检索用户时,使用的管理员账号 DN
authentication_ldap_simple_bind_root_pwd""检索用户时,使用的管理员账号密码
authentication_ldap_simple_server_host""LDAP 服务的 host 地址
authentication_ldap_simple_server_port389LDAP 服务的端口
authentication_ldap_simple_user_search_attruidLDAP 对象中标识用户的属性名称
auth_token空字符串Token 是否自动开启
tmp_dirstarrocksFe.STARROCKS_HOME_DIR/temp_ddir临时文件保存目录,例如 backup/restore 等进程保留的目录
localezh_CN.UTF-8字符集
hive_meta_load_concurrency4Hive 元数据并发线程数。
hive_meta_cache_refresh_interval_s7200定时刷新 Hive 外表元数据缓存的周期。
hive_meta_cache_ttl_s86400HIve 外表元数据缓存失效时间,单位为秒。
hive_meta_store_timeout_s3600 *24连接 Hive Metastore 的超时时间,默认 24h。
es_state_sync_interval_second10FE 获取 Elasticsearch Index 的时间
enable_auth_checkTRUE是否开启鉴权。
auth_token空字符串为空则在 Master FE 第一次启动时随机生成一个。
enable_metric_calculatorTRUE是否开启定期收集 metrics。
backup_plugin_path/tools/trans_file_tool/trans_files.shDeprecated。Backup 和 Restore 的插件路径。

BE 配置项

BE 配置项暂不支持在线修改,生效需在 be.conf 中修改并重启 be 服务。

配置项默认值作用
be_port9060BE 上 thrift server 的端口,用于接收来自 FE 的请求
brpc_port8060BRPC 的端口,可以查看 BRPC 的一些网络统计信息
brpc_num_threads-1BRPC 的 bthreads 线程数量,-1 表示和 CPU 核数一样
priority_networks空字符串以 CIDR 形式 10.10.10.0/24 指定 BE IP 地址,适用于机器有多个 IP,需要指定优先使用的网络
heartbeat_service_port9050心跳服务端口(thrift),用户接收来自 FE 的心跳
heartbeat_service_thread_count1心跳线程数
create_tablet_worker_count3创建 tablet 的线程数
drop_tablet_worker_count3删除 tablet 的线程数
push_worker_count_normal_priority3导入线程数,处理 NORMAL 优先级任务
push_worker_count_high_priority3导入线程数,处理 HIGH 优先级任务
publish_version_worker_count2生效版本的线程数
clear_transaction_task_worker_count1清理事务的线程数
alter_tablet_worker_count3进行 schema change 的线程数
clone_worker_count3克隆的线程数
storage_medium_migrate_count1介质迁移的线程数,SATA 迁移到 SSD
check_consistency_worker_count1计算 tablet 的校验和(checksum)
report_task_interval_seconds10汇报单个任务的间隔。建表,删除表,导入,schema change 都可以被认定是任务
report_disk_state_interval_seconds60汇报磁盘状态的间隔。汇报各个磁盘的状态,以及上面的数据量等等
report_tablet_interval_seconds60汇报 tablet 的间隔。汇报所有的 tablet 的最新版本
alter_tablet_timeout_seconds86400Schema change 超时时间
sys_log_dir${DORIS_HOME}/log存放日志的地方,包括 INFO, WARNING, ERROR, FATAL 等日志
user_function_dir${DORIS_HOME}/lib/udfUDF 程序存放的地方
small_file_dir${STARROCKS_HOME}/lib/small_file保存文件管理器下载的文件的目录
sys_log_levelINFO日志级别,INFO < WARNING < ERROR < FATAL
sys_log_roll_modeSIZE-MB-1024日志拆分的大小,每 1G 拆分一个日志
sys_log_roll_num10日志保留的数目
sys_log_verbose_modules*日志打印的模块,写 olap 就只打印 olap 模块下的日志
sys_log_verbose_level10日志显示的级别,用于控制代码中 VLOG 开头的日志输出
log_buffer_level空字符串日志刷盘的策略,默认保持在内存中
num_threads_per_core3每个 CPU core 启动的线程数
compress_rowbatchesTRUEBE 之间 rpc 通信是否压缩 RowBatch,用于查询层之间的数据传输
serialize_batchFALSEBE 之间 rpc 通信是否序列化 RowBatch,用于查询层之间的数据传输
status_report_interval5查询汇报 profile 的间隔,用于 FE 收集查询统计信息
doris_scanner_thread_pool_thread_num48存储引擎并发扫描磁盘的线程数,统一管理在线程池中
doris_scanner_thread_pool_queue_size102400存储引擎最多接收的任务数
doris_scan_range_row_count524288存储引擎拆分查询任务的粒度,512K
doris_scanner_queue_size1024存储引擎支持的扫描任务数
doris_scanner_row_num16384每个扫描线程单次执行最多返回的数据行数
doris_max_scan_key_num1024查询最多拆分的 scan key 数目
column_dictionary_key_ratio_threshold0字符串类型的取值比例,小于这个比例采用字典压缩算法
column_dictionary_key_size_threshold0字典压缩列大小,小于这个值采用字典压缩算法
memory_limitation_per_thread_for_schema_change2单个 schema change 任务允许占用的最大内存
max_unpacked_row_block_size104857600单个 block 最大的字节数,100MB
file_descriptor_cache_clean_interval3600文件句柄缓存清理的间隔,用于清理长期不用的文件句柄
disk_stat_monitor_interval5磁盘状态检测的间隔
unused_rowset_monitor_interval30清理过期 Rowset 的时间间隔
storage_root_path空字符串存储数据的目录,多块盘配置使用分隔符";"间隔,例如:/data1/starrocks;/data2/starrocks
max_percentage_of_error_disk0磁盘错误达到一定比例,BE 退出
default_num_rows_per_data_block1024每个 block 的数据行数
max_tablet_num_per_shard1024每个 shard 的 tablet 数目,用于划分 tablet,防止单个目录下 tablet 子目录过多
pending_data_expire_time_sec1800存储引擎保留的未生效数据的最大时长
inc_rowset_expired_sec1800导入生效的数据,存储引擎保留的时间,用于增量克隆
max_garbage_sweep_interval3600磁盘进行垃圾清理的最大间隔
min_garbage_sweep_interval180磁盘进行垃圾清理的最小间隔
snapshot_expire_time_sec172800快照文件清理的间隔,48 个小时
trash_file_expire_time_sec259200回收站清理的间隔,72 个小时
row_nums_checkTRUECompaction 完成之后,前后 Rowset 行数对比
file_descriptor_cache_capacity32768文件句柄缓存的容量
min_file_descriptor_number60000BE 进程的文件句柄 limit 要求的下线
index_stream_cache_capacity10737418240BloomFilter/Min/Max 等统计信息缓存的容量
storage_page_cache_limit20GPageCache 的容量
disable_storage_page_cacheFALSE是否开启 PageCache
base_compaction_start_hour20BaseCompaction 开启的时间
base_compaction_end_hour7BaseCompaction 结束的时间
base_compaction_check_interval_seconds60BaseCompaction 线程轮询的间隔
base_compaction_num_cumulative_deltas5BaseCompaction 触发条件之一:Cumulative 文件数目要达到的限制
base_compaction_num_threads_per_disk1每个磁盘 BaseCompaction 线程的数目
base_cumulative_delta_ratio0.3BaseCompaction 触发条件之一:Cumulative 文件大小达到 Base 文件的比例
base_compaction_interval_seconds_since_last_operation86400BaseCompaction 触发条件之一:上一轮 BaseCompaction 距今的间隔
cumulative_compaction_check_interval_seconds10CumulativeCompaction 线程轮询的间隔
min_cumulative_compaction_num_singleton_deltas5CumulativeCompaction 触发条件之一:Singleton 文件数目要达到的下限
max_cumulative_compaction_num_singleton_deltas1000CumulativeCompaction 触发条件之一:Singleton 文件数目要达到的上限
cumulative_compaction_write_mbytes_per_sec100CumulativeCompaction 写磁盘的限速
min_compaction_failure_interval_sec600Tablet Compaction 失败之后,再次被调度的间隔。
max_compaction_concurrency4BaseCompaction + CumulativeCompaction 的最大并发, -1 代表没有限制。
compaction_trace_threshold60单次 Compaction 打印 trace 的时间阈值,如果单次 compaction 时间超过该阈值就打印 trace,单位为秒
webserver_port8040Http Server 端口
webserver_num_workers48Http Server 线程数
periodic_counter_update_period_ms500Counter 统计信息的间隔
load_data_reserve_hours4小批量导入生成的文件保留的时间
load_error_log_reserve_hours48导入数据信息保留的时长
number_tablet_writer_threads16流式导入的线程数
streaming_load_max_mb10240流式导入单个文件大小的上限
streaming_load_rpc_max_alive_time_sec1200流式导入 RPC 的超时时间
tablet_writer_rpc_timeout_sec600TabletWriter 的超时时长
fragment_pool_thread_num64查询线程数,默认启动 64 个线程,后续查询请求动态创建线程
fragment_pool_queue_size1024单节点上能够处理的查询请求上限
enable_partitioned_hash_joinFALSE使用 PartitionHashJoin
enable_partitioned_aggregationTRUE使用 PartitionAggregation
enable_token_checkTRUEToken 开启检验
enable_prefetchTRUE查询提前预取
load_process_max_memory_limit_bytes107374182400单节点上所有的导入线程占据的内存上限,100GB
load_process_max_memory_limit_percent80单节点上所有的导入线程占据的内存上限比例,100GB
sync_tablet_metaFALSE存储引擎是否开 sync 保留到磁盘上。
thrift_rpc_timeout_ms5000Thrift 超时的时长
txn_commit_rpc_timeout_ms10000Txn 超时的时长
routine_load_thread_pool_size10例行导入的线程池数目
tablet_meta_checkpoint_min_new_rowsets_num10TabletMeta Checkpoint 的最小 Rowset 数目
tablet_meta_checkpoint_min_interval_secs600TabletMeta Checkpoint 线程轮询的时间间隔
default_rowset_typeALPHA存储引擎的格式,默认新 ALPHA,后面会替换成 BETA
brpc_max_body_size209715200BRPC 最大的包容量,200MB
max_runnings_transactions2000存储引擎支持的最大事务数
tablet_map_shard_size1Tablet 分组数
enable_bitmap_union_disk_format_with_setFALSEBitmap 新存储格式,可以优化 bitmap_union 性能

Broker 配置项

参考 Broker load 导入

系统参数

  • Linux Kernel

建议 3.10 以上的内核。

  • CPU
参数名称描述建议值修改方式
performancescaling governor 用于控制 CPU 的能耗模式,默认是 on-demand 模式,使用 performance 能耗最高,性能也最好,StarRocks 部署建议采用 performance 模式performanceecho 'performance' | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
  • 内存
参数名称描述建议值修改方式
Overcommit建议使用 Overcommit1echo 1 | sudo tee /proc/sys/vm/overcommit_memory
Huge Pages禁止 transparent huge pages,这个会干扰内存分配器,导致性能下降madviseecho 'madvise' | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
Swappiness关闭交换区,消除交换内存到虚拟内存时对性能的扰动0echo 0 | sudo tee /proc/sys/vm/swappiness
  • 磁盘
参数名称描述建议值修改方式
SATAmq-deadline 调度算法会排序和合并 I/O 请求,适合 SATA 磁盘mq-deadlineecho mq-deadline | sudo tee /sys/block/vdb/queue/scheduler
调度算法kyber 调度算法适用于延迟低的设备,例如 NVME/SSDkyberecho kyber | sudo tee /sys/block/vdb/queue/scheduler
调度算法如果系统不支持 kyber,建议使用 none 调度算法noneecho none | sudo tee /sys/block/vdb/queue/scheduler
  • 网络

请至少使用 10 GB 网络,1GB 网络也能工作,但是会导致达不到预期性能。可以使用 iperf 测试系统带宽,确认是否是 10GB 网络。

  • 文件系统

建议使用 Ext4 文件系统,可用相关命令进行查看挂载类型。

df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/vdb1      ext4     1008G  903G   55G  95% /home/disk1
  • 高并发配置

如果集群负载的并发度较高,建议添加以下配置

echo 120000 > /proc/sys/kernel/threads-max
echo 60000  > /proc/sys/vm/max_map_count
echo 200000  > /proc/sys/kernel/pid_max
  • max user processes
ulimit -u 40960
  • 文件句柄

在部署的机器上运行 ulimit -n 65535,把文件句柄设为 65535。如果 ulimit 值重新登录后失效,尝试修改 /etc/ssh/sshd_config 中的 UsePAM yes ,然后重启 sshd 服务即可。

  • 其他系统配置
参数名称建议值修改方式
tcp abort on overflow1echo 1 | sudo tee /proc/sys/net/ipv4/tcp_abort_on_overflow
somaxconn1024echo 1024 | sudo tee /proc/sys/net/core/somaxconn