修改配置
更新时间:2026-06-30
功能概述
修改配置用于查看和调整集群的内核参数。用户可以在页面上浏览参数列表、修改参数目标值,并将修改提交到集群执行。修改可以立即生效,也可以指定时间执行。
页面按组件类型分为 Master、Segment、Monitor 三个 Tab,分别管理对应组件的参数。
进入方式
- 进入集群详情。
- 在左侧菜单选择"参数管理",进入"修改配置"子页面。
说明
- 备集群无法修改或提交参数,相关按钮会置灰并展示原因提示。
查看参数列表
参数列表展示当前集群所选组件的所有可配置参数,包含以下信息:
| 字段 | 说明 |
|---|---|
| 参数名称 | 参数的唯一标识名称。有待提交修改的参数会显示"待提交"标签。 |
| 参考值(默认) | 该参数的系统默认值。 |
| 当前值 | 参数在集群上的当前生效值。有待提交修改时会以高亮样式展示目标值。 |
| 可修改范围 | 参数允许填写的值域,包含类型、最小值、最大值或可选项。 |
| 生效方式 | 重启生效或立即生效。 |
| 参数说明 | 参数功能描述。 |
支持以下筛选操作:
- 按参数名称关键词搜索。
- 按生效方式筛选(重启生效 / 立即生效)。
- 勾选"只显示有修改的参数",仅展示当前已有待提交修改的参数。
修改参数
操作步骤
- 在参数列表中,将鼠标悬停在目标参数所在行,"当前值"列会出现编辑图标,点击编辑图标。
-
弹出"修改参数"弹窗,展示以下信息:
- 参数名称(可点击复制)
- 取值范围
- 默认值
- 生效方式
-
在"修改为"输入框中填写或选择目标值:
- 若参数有可选值,展示下拉选择框。
- 若参数类型为布尔值,展示 true/false 下拉选择框。
- 若参数类型为整数、长整数或浮点数,展示数字输入框,自动校验范围。
- 其他类型展示文本输入框。
- 目标值合法时"确定"按钮可点击,点击"确定"保存修改。
说明
- 若参数的生效方式为"重启生效",弹窗顶部会展示警告提示,告知修改后需重启集群方可生效。
- 若填写的目标值与当前值相同,保存后该参数的待提交记录会被撤销。
- 修改操作在本地暂存,不会立即发送到集群,需通过"提交修改"操作生效。
提交修改
将已修改的参数批量提交到集群执行。
操作步骤
- 完成一个或多个参数修改后,点击"提交修改(N)"按钮(N 为待提交修改的数量)。
- 弹窗中展示所有待提交修改的参数列表,包含参数名称、原值、目标值和生效方式。
-
选择执行时间:
- 立即执行:提交后立即在集群上执行参数变更。
- 指定时间:选择一个未来的日期时间,届时自动执行变更。
- 若存在生效方式为"重启生效"的参数,执行方式会展示"全量冷启动"。
- 点击"确定"提交。
冲突处理
若提交的参数中存在已有待执行的定时修改任务,系统会提示冲突并展示冲突参数列表(含参数名称、原值、目标值和已有定时任务的执行时间)。
当本次提交为"立即执行"时,可选择:
- 仅立即修改,保留定时任务:立即执行本次修改,原有定时任务继续保留,定时任务到期后会覆盖本次修改。
- 立即修改并取消定时任务:立即执行本次修改,同时取消冲突的定时任务。
当本次提交为"指定时间"时,可选择:
- 覆盖已有任务:本次定时任务覆盖原有定时任务,以本次提交的目标值为准。
- 取消提交:放弃本次提交。
撤销修改
撤销当前组件下所有尚未提交的参数修改。
操作步骤
- 点击"撤销所有修改"按钮。
- 在确认弹窗中点击"确定"。
撤销后,所有本地暂存的待提交修改将被清除,参数列表恢复为当前集群实际生效值。
操作限制
- 备集群不支持修改和提交参数,相关按钮置灰并展示原因。
- 参数提交后可在"修改历史"页面查看执行状态和历史记录。
参数配置建议
以下为针对不同内存规格集群的参数推荐值,供调优参考。表格中仅列出控制台可操作的 Master、Segment、Monitor 组件参数,操作系统层参数不在此列。
说明:计算公式列中 p 表示 Segment 主实例数,m 表示 Segment 镜像数。
Master / Segment 参数
| 参数 | 默认值 | 推荐值(256GB,3p3m) | 推荐值(512GB,4p4m) | 推荐值(768GB,4p4m) | 计算公式 | 参数说明 |
|---|---|---|---|---|---|---|
| max_connections | 250 | coor:500 / executor:3000 | coor:500 / executor:3000 | coor:500 / executor:3000 | 含 idle 连接,active+idle+idle in transaction 的总和 | 数据库最大并发连接数。使用 JDBC 高可用配置时,coor 总连接数为 500×3=1500;coor 与 executor 建议按 1:2 配置。 |
| max_prepared_transactions | 50 | 1000 | 1000 | 1000 | 此值需 ≥ max_connections | 同时处于 prepared 状态的最大事务数。 |
| superuser_reserved_connections | 3 | 20 | 20 | 20 | 默认值过小,异常恢复时可能报 too many client | 为超级用户保留的连接数。 |
| sc_external_max_execs | 64 | 4 | 4 | 4 | 每个 scfs 端口推荐 256 个连接,设为 4 可同时跑 64 个 scfs 任务 | 外部表操作期间读取外部表数据的 executor 实例数量。 |
| sc_max_slices | 0 | 80 | 80 | 80 | 定值;SQL 报错且无法改写时可设 session 级变量 | 查询生成的最大切片数。 |
| sc_vmem_protect_limit | 264507 | 40960 | 59392 | 105472 | 考虑 1 台主机损坏时备实例切换,去掉 shared_buffer 占用。256GB:[(250×0.9−16×(3+1)]/(3+1)=40GB;512GB:[(500×0.9−32×(4+1)]/(4+1)=58GB;768GB:[(750×0.9−32×(4+1)]/(4+1)=103GB | 实例允许使用的最大内存(KB)。 |
| sc_vmem_limit_per_query | 0 | 8388608 | 8388608 | 8388608 | 定值,8388608 KB(8 GB) | 每条查询在每个 executor 上允许使用的最大内存。 |
| sc_workfile_limit_files_per_query | 0 | 100000 | 100000 | 100000 | 定值 | 每条查询在每个 executor 上可溢出的临时文件个数。 |
| sc_workfile_limit_per_query | 0 | 100GB | 100GB | 100GB | 定值 | 每条查询在每个 executor 上可溢出的文件大小上限。 |
| sc_workfile_max_entries | 81920 | 819200 | 819200 | 819200 | 定值,解决 could not create workfile manager entry 报错 | 每个 executor 允许溢出的文件集最大条目数。 |
| shared_buffers | 128MB | 16GB | 24GB | 32GB | shared_buffers × 实例总数不能超过 shmmax。超出时日志报 FATAL:Could not create shared memory segment | executor 实例用于共享缓冲区的内存大小。 |
| tcp_keepalives_idle | 0 | 300 | 300 | 300 | 定值 | 空闲连接上发送 keepalive 之间的秒数。 |
| sc_dispatch_keepalives_idle | 0 | 300 | 300 | 300 | 定值 | coordinator 向 executor 发送 TCP 保活信号的时间间隔(秒)。 |
| wal_buffers | 128 | 1GB | 1GB | 1GB | 设置 1GB,自动转为 131072(每块 8 KB) | WAL 缓冲区大小。 |
| wal_keep_segments | 5 | 1000 | 1000 | 1000 | 定值 | sd_wal 目录下能保留的历史日志文件段最小数目。 |
| max_wal_size | 1024 MB | 20GB | 20GB | 20GB | 定值 | 自动 WAL 检查点之间允许 WAL 增长的最大大小。 |
| sd_stat_activity_enable | off | on | on | on | 定值,支持查看数据库当前资源使用情况 | 日志中记录资源使用情况。 |
| sc_enable_opt_row_number | on | off | off | off | 规避已知 bug | row_number 优化开关。 |
可选参数
| 参数 | 默认值 | 推荐值 | 参数说明 |
|---|---|---|---|
| log_destination | stderr | csvlog | 日志类型。开启审计日志时推荐,建议同时设置 log_min_duration_statement=100ms 过滤低关注度语句,log_statement 保持 none。 |
| logging_collector | off | on | 是否允许收集 csvlog 日志。 |
| log_min_duration_statement | -1 | 100ms | SQL 结束时记录持续时间。-1 不记录;0 全记录;>0 只记录超过指定时间的 SQL。 |
| log_connections | off | on | session 登录时是否写入日志(根据审计需求配置)。 |
| shared_preload_libraries | 空 | pg_stat_statements | 数据库启动时预加载的共享库。访问 pg_stat_statements 时需开启。 |
| pg_stat_statements.discard_policy | calls | max_time | 统计记录达到上限时的淘汰策略。max_time:优先淘汰执行时间短的记录。 |
| autovacuum | off | on | 启动 autovacuum 守护程序,自动执行 analyze 和 vacuum。 |
| sc_resource_manager | none | group | 资源管理方式。group:使用资源组管理;需运行资源组 install.sh 脚本创建对应 cgroup 组。 |
| sc_active_backend_resqueue_length | 200 | 100–200 | 允许同时进入执行状态的最大事务个数。大查询场景建议 100–150;短查询场景可保持 200。 |
| dtx_phase2_retry_second | 1min | 20min | 两阶段事务提交出错时的重试时间。IO 繁忙或主备同步差的环境建议调大,防止 coor 进程因超时自杀。 |
| sc_node_connect_timeout | 3min | 30min | 集群节点间网络连接超时时间。集群重启后大量连接涌入时,防止资源争抢导致连接超时。 |
| monitor_recover_operation_timeout | 3600 | 10800 | monitor rewind 或 basebackup 后,启动节点并回放 WAL 的超时时间(秒)。磁盘性能差或数据量大时建议调大。 |
Monitor 参数
| 参数 | 默认值 | 推荐值 | 参数说明 |
|---|---|---|---|
| monitor_coor_bad_time | 60 | 100 | coordinator 掉线超过此时间则标记为 removed(秒)。值越小切换灵敏度越低。 |
| monitor_exec_bad_time | 30 | 300 | executor 掉线超过此时间则标记为 removed(秒)。值越小切换灵敏度越低。 |
| monitor_exec_nsync_time | 120 | 900 | executor mode 变为 'n' 后超过此时间则标记为 removed(秒)。业务压力大或全量/增量同步期间 WAL 积累较多时建议调大,最大可设 3600。 |
| monitor_exec_async_time | 30 | 60 | executor mode 变为 'a' 后超过此时间则标记为 removed(秒)。 |
| monitor_ssh_connect_timeout | 10 | 300 | monitor 执行 SSH 操作的超时时间(秒)。负载高响应慢时可调至 600。 |
| monitor_enable_exec_basebackup | 0 | 1 | executor 是否使用 basebackup 进行自动恢复。0:否;1:是。 |
| monitor_coor_recovering_time | 60 | 300 | coordinator 启动后处于 recovering 状态的超时时间(秒)。超过此时间 coor 会被设为 removed。 |
| monitor_exec_recovering_time | 180 | 900 | executor 启动后处于 recovering 状态的超时时间(秒)。超过此时间 executor 会被设为 removed。 |
| monitor_coor_start_timeout | 60 | 900 | coordinator 启动超时时间(秒)。意外宕机后 monitor 自动拉起时若 WAL 较多,建议调大。 |
| monitor_exec_start_timeout | 30 | 900 | executor 启动超时时间(秒)。意外宕机后 monitor 自动拉起时若 WAL 较多,建议调大。 |
评价此篇文章
