
# 修改Doris参数配置对集群进行性能调优
在数据分析场景中，用户需要根据业务需求调整Doris集群的配置参数来优化性能。然而，手动调整配置参数不仅耗时，而且容易出错，导致集群性能未能达到最优状态。为此用户可以在控制台中多次调整Doris集群配置参数，以优化集群性能，从而提高数据处理效率和系统响应速度。
#### 使用限制
- 修改集群静态参数需要重启集群，可能会导致业务的中断。建议在业务低峰期进行操作，以免对业务造成影响。
- 集群无运行中的任务时，才能修改参数。
- CloudTable Doris集群重启过程中，不允许修改集群参数。
 
#### Doris修改参数步骤
1. 登录[表格存储服务控制台](https://console.huaweicloud.com/cloudtable)。
2. 左上角选择区域。
3. 在左侧导航栏中，单击"集群管理"。
4. 在集群列表中找到所需要的集群，单击"集群名称 \> 参数配置"进入参数配置页签。
5. 选择修改的节点（FE、BE节点）后，选中需要修改的参数，在"参数值"列单击![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002342704404.png "点击放大")。
6. 在修改框中输入新值，单击![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002342544596.jpg)，系统提示"参数修改为' xx '成功，请保存本次修改值"，并且修改的参数值后显示红色\*。
   
   如果单击![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002376542513.jpg)，则取消修改。
   图1修改参数   
   ![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002376662417.png)
   
   
7. 单击参数列表左上方的"保存修改"，弹出"保存修改"对话框。
8. 在"保存修改"对话框中，确认参数修改信息正确后，然后单击"确定"。 
   图2保存修改   
   ![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002342704408.png "点击放大")
   - 单击确定后，再单击右上角的刷新按钮![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002376662421.png "点击放大")，如果参数表状态显示"已生效"，集群不用重启。如果显示"未生效"，用户需要手动重启集群才能使修改的参数生效。
   
   - 单击参数配置页签左上角的重启按钮，集群重启或者返回集群列表页面重启集群。 静态参数修改完成后，需要手动重启集群，参数才能生效。动态参数修改后生效，不用重启集群。
     
   
   - 如果修改的参数值不正确，可以在"保存修改"对话框中单击"一键还原"，取消修改参数值。
   
   
   
   
9. 参数修改完成后，可以单击"修改历史"页签查看参数修改的历史。"修改历史"页面中显示如下信息。 
   表1参数说明 
   | 参数   | 参数说明          |
   |:---|:---|
   | 参数名  | 被修改过的参数名。     |
   | 旧值   | 修改前的参数值。      |
   | 新值   | 修改后的参数值。      |
   | 修改时间 | 记录用户修改参数值的时间。 |
      
   
   
 
#### Doris参数修改状态
表2状态 
| 状态  | 状态说明                                                                                                                                                                                                                                                                                       |
|:---|:---|
| 未更改 | Doris未更改的参数。                                                                                                                                                                                                                                                                               |
| 未应用 | Doris参数已修改但是未应用。                                                                                                                                                                                                                                                                           |
| 未生效 | Doris静态参数，修改保存后需要重启集群。                                                                                                                                                                                                                                                                     |
| 已生效 | Doris参数修改后已生效： - 静态参数修改保存后，集群需要重启才能生效。  - 动态参数修改保存后生效。   |
   
#### FE节点参数说明
表3FE节点参数说明 
| 参数名                                      | 静态参数 | 参数描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| max_routine_load_job_num                 | 否    | - 描述：该参数限制的例行导入作业的总数，包括NEED_SCHEDULED，RUNNING，PAUSE这些状态。超过后，不能提交新的作业。  - 参数类型：int  - 取值范围：（0,300）  - 默认值：100                                                                                                                                                                                                                                                                                                                                                                                                                    |
| use_new_tablet_scheduler                 | 是    | - 描述：是否启用新的副本调度方式。  - 约束限制：此参数仅支持存算一体集群。  - 参数类型：boolean  - 取值范围：\[true,false\]  - 默认值：true                                                                                                                                                                                                                                                                                                                                                                       |
| audit_plugin_max_sql_length              | 否    | - 描述：Doris审计日志记录所执行SQL的最大长度，超过长度部分会被截断。该值设置过大可能会导致占用过多内存影响集群可用性，请谨慎调整。  - 约束限制： - 此参数仅支持存算一体集群。  - 此参数仅支持Doris2.1.7及以上版本。如果当前已创建的Doris 2.1.7版本集群参数配置页面未显示此参数，则联系技术人员处理。    - 参数类型：long  - 取值范围：(0,9223372036854775807)  - 默认值：4096                  |
| enable_create_colocate_table             | 是    | - 描述：是否允许创建colocate表，配置为true时允许创建。 colocate表为本地性表，一般不会随扩缩容迁移，集群缩容时可能会因为colocate表无法数据迁移而失败。 请谨慎修改。  - 约束限制： - 此参数仅支持存算一体集群。  - 此参数仅支持Doris2.1.7及以上版本。如果当前已创建的Doris 2.1.7版本集群参数配置页面未显示此参数，则联系技术人员处理。    - 参数类型：boolean  - 取值范围：\[true,false\]  - 默认值：false           |
| max_broker_concurrency                   | 否    | - 描述：broker scanner的最大并发数。  - 参数类型：int  - 取值范围：（5,30）  - 默认值：10                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| tablet_repair_delay_factor_second        | 否    | - 描述：对于不同的调度优先级，我们会延迟不同的时间后开始修复。以防止因为例行重启、升级等过程中，产生大量不必要的副本修复任务。此参数为一个基准系数。对于HIGH优先级，延迟为基准系数 \* 1；对于NORMAL优先级，延迟为基准系数 \* 2；对于LOW优先级，延迟为基准系数 \* 3。即优先级越低，延迟等待时间越长。如果用户想尽快修复副本，可以适当降低该参数。  - 参数类型：long  - 取值范围：(0,9223372036854775807)  - 默认值：60                                                                                                                                                                                                                                                                                       |
| balance_load_score_threshold             | 否    | - 描述：集群balance百分比的阈值。默认为0.1，即10%。当一个BE节点的load score，不高于或不低于平均load score的10%时，我们认为这个节点是均衡的。如果想让集群负载更加平均，可以适当调低这个参数。  - 参数类型：double  - 取值范围：（0,1）  - 默认值：0.1                                                                                                                                                                                                                                                                                                                                                                             |
| dynamic_partition_check_interval_seconds | 否    | - 描述：动态分区线程的执行频率，默认为600（10分钟），即每10分钟进行一次调度。  - 单位：s  - 参数类型：long  - 取值范围：(0,9223372036854775807）  - 默认值：600                                                                                                                                                                                                                                                                                                                                             |
| max_routine_load_task_concurrent_num     | 否    | - 描述：该参数限制了一个例行导入作业最大的子任务并发数。建议维持默认值。设置过大，可能导致同时并发的任务数过多，占用集群资源。  - 参数类型：int  - 取值范围：（0,10）  - 默认值：5                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| dynamic_partition_enable                 | 否    | - 描述：是否开启Doris的动态分区功能。默认为false，即关闭。该参数只影响动态分区表的分区操作，不影响普通表。  - 参数类型：boolean  - 取值范围：\[true,false\]  - 默认值：true                                                                                                                                                                                                                                                                                                                                                                                                                   |
| max_bytes_per_broker_scanner             | 否    | - 描述： broker scanner程序可以在一个broker加载作业中处理的最大字节数。通常，每个BE都有一个broker scanner程序，单个BE处理的数据量的最大值，默认为500G。如果单个BE导入的数据量\>max_bytes_per_broker scanner会报错，需要调大参数max_bytes per_broker_scanner，或者调整导入并发数。具体计算逻辑如下：本次导入并发数=Math.min(源文件大小/最小处理量，最大并发数，当前BE节点个数) 本次导入单个BE的处理量=源文件大小/本次导入的并发数 其中：最小处理量min_bytes_per_broker scanner默认为64M，最大并发数max broker concurrency默认为10。 单位：byte   - 参数类型：long  - 取值范围：(0,9223372036854775807)  - 默认值：3221225472   |
   
#### BE节点参数说明
表4BE节点参数说明 
| 参数名                                  | 静态参数 | 参数描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| max_consumer_num_per_group           | 是    | - 描述：一个数据消费者组中的最大消费者数量，用于routine load。  - 参数类型：int  - 取值范围：(0,10)  - 默认值：3                                                                                                                                                                                 |
| clone_worker_count                   | 是    | - 描述：用于执行克隆任务的线程数，其值影响副本均衡的速度。在磁盘压力不大的情况下，可以通过调整该参数来加快副本均衡。  - 参数类型：int  - 取值范围：(0,10)  - 默认值：3                                                                                                                                                                  |
| compaction_promotion_min_size_mbytes | 是    | - 描述：Cumulative Compaction的输出rowset总磁盘大小低于此配置大小时，该rowset将不进行Base Compaction，仍然处于Cumulative Compaction流程中。  - 单位：mbyte  - 参数类型：int  - 取值范围：(0,10240)  - 默认值：32                 |
| max_cumu_compaction_threads          | 是    | - 描述：Cumulative Compaction线程池中线程数量的最大值，"-1"表示每个磁盘一个线程。  - 参数类型：int  - 取值范围：(0,10240)  - 默认值：32                                                                                                                                                             |
| tablet_rowset_stale_sweep_time_sec   | 是    | - 描述：表示清理合并版本的过期时间，当当前时间now()减去一个合并的版本路径中rowset最近创建时间大于"tablet_rowset_stale_sweep_time_sec"值时，对当前路径进行清理，删除合并过的rowset。  - 单位：s  - 参数类型：int  - 取值范围：(0,2147483648)  - 默认值：1800   |
| streaming_load_json_max_mb           | 否    | - 描述：用于限制数据格式为JSON的一次Stream Load导入任务中，允许的最大数据量。  - 单位：mb  - 参数类型：int  - 取值范围：(0,10240)  - 默认值：100                                                                                    |
| string_type_length_soft_limit_bytes  | 是    | - 描述：String类型最大长度的软限。  - 单位：byte  - 参数类型：int  - 取值范围：(0,2147483648)  - 默认值：104857600                                                                                                      |
| mem_limit                            | 是    | - 描述：用于限制BE进程使用服务器最大内存百分比。  - 参数类型：string  - 取值范围：(0,100)  - 默认值：80%                                                                                                                                                                                         |
| tablet_writer_open_rpc_timeout_sec   | 是    | - 描述：在远程BE中打开tablet writer的RPC超时时间。  - 单位：s  - 参数类型：int  - 取值范围：(0,2147483648)  - 默认值：300                                                                                 |
| query_cache_max_size_mb              | 是    | - 描述：查询结果最大缓存大小。  - 单位：mb  - 参数类型：int  - 取值范围：(0,10240)  - 默认值：512                                                                                                              |
| query_cache_elasticity_size_mb       | 是    | - 描述：当Cache的内存空间超过query_cache_max_size_mb + query_cache_elasticity_size_mb值时，释放最近最久未使用的Cache，直至占用内存低于"query_cache_max_size_mb"参数值。  - 单位：mb  - 参数类型：int  - 取值范围：(0,10240)  - 默认值：256     |
| max_base_compaction_threads          | 是    | - 描述：Base Compaction线程池中线程数量的最大值，"-1"表示每个磁盘一个线程。  - 参数类型：int  - 取值范围：(0,10240)  - 默认值：8                                                                                                                                                                      |
| compaction_task_num_per_fast_disk    | 是    | - 描述：每个高速磁盘（SSD）可以并发执行的Compaction任务数量。  - 参数类型：int  - 取值范围：(0,10240)  - 默认值：8                                                                                                                                                                                       |
| max_segment_num_per_rowset           | 是    | - 描述：用于限制导入时，新产生的rowset中的Segment数量。如果超过阈值，导入会失败并报错-238。过多的Segment会导致Compaction占用大量内存引发OOM错误。  - 参数类型：int  - 取值范围：(0,2147483648)  - 默认值：1000                                                                                                                          |
| max_tablet_version_num               | 是    | - 描述：限制单个Tablet最大version的数量。用于防止导入过于频繁，或Compaction不及时导致大量version堆积问题。当超过限制后，导入任务将被拒绝。  - 参数类型：int  - 取值范围：(0,2147483648)  - 默认值：2000                                                                                                                           |
| exchg_node_buffer_size_bytes         | 是    | - 描述：ExchangeNode节点Buffer队列的大小。来自Sender端发送的数据量大于ExchangeNode的Buffer大小之后，后续发送的数据将阻塞直到Buffer有可写入的空间。  - 参数类型：int  - 单位：byte  - 取值范围：(0,2147483648)  - 默认值：20485760                         |
   
