原始网页:https://www.cockroachlabs.com/docs/stable/cluster-settings.html


本小节将讲解如何查看并修改集群级配置项。

NOTE: 相对于集群级配置项作用于集群,用户还可以在执行cockroach start命令时使用相应的Flag来配置节点级配置项,后者只作用于单个节点。

概述

集群配置项作用于整个集群的所有节点,用户可以通过root账户在集群启动后的任意时间更新集群配置项。

查看配置项

使用SHOW CLUSTER SETTING语句

变更配置项

使用SET CLUSTER SETTING语句

用户须知:

配置项列表

WARNING: 很多配置项会调整集群内部的行为,用户需要慎重进行调整,并做好应对风险的准备。

配置项 类型 默认值 简介
cloudstorage.gs.default.key string Google云端存储操作时使用的JSON Key。
cloudstorage.http.custom_ca string 自定义根CA(附加到系统的默认CA),用于在与HTTPS存储交互时验证证书。
cluster.organization string 用户所属组织的名字
debug.panic_on_failed_assertions boolean false 当出现assert错误时CockroachDB进入panic状态,而不只是报告错误。
diagnostics.reporting.enabled boolean true 是否允许向cockroach lab发送诊断报告。
diagnostics.reporting.interval duration 1h0m0s 定期上传诊断报告的时间周期
diagnostics.reporting.send_crash_reports boolean true 是否上传crash和panic相关的报告
kv.allocator.lease_rebalancing_aggressiveness float 1E+00 大于1.0代表更加积极地根据负载情况重新分配租约。介于0与1.0之间则会使重新分配租约更加保守。
kv.allocator.load_based_lease_rebalancing.enabled boolean true 是否基于负载和网络延迟重新分配Range租约。
kv.allocator.range_rebalance_threshold float 5E-02 百分比数值。当节点的Range数量相对于集群的平均值,偏移的比例超过该阈值时,节点被认定为Range数量过多或是过少,需要重新均衡分布Range。
kv.allocator.stat_based_rebalancing.enabled boolean false 是否基于写负载和磁盘使用量重新均衡分布Range副本。
kv.allocator.stat_rebalance_threshold float 2E-01 百分比数值。当节点某项系统指标(例如磁盘使用量或写速率)相对于集群的平均值,偏移的比例超过该阈值时,节点需要重新均衡分布Range。
kv.bulk_io_write.max_rate byte size 8.0 EiB 磁盘批量写入操作的速率限制,单位为byte/sec。
kv.bulk_sst.sync_size byte size 2.0 MiB 非Rocksdb原生的SST写块操作,需要调用fsync同步的快大小,值为0代表不启动。
kv.raft.command.max_size byte size 64 MiB Raft命令允许的最大的大小
kv.raft_log.synchronize boolean true 是否开启Raft日志同步写入持久化设备。
kv.range.backpressure_range_size_multiplier float 2E+00 代表Range能够在某个操作持续写入导致该Range大小超过分裂阈值(range_max_bytes)但不立即阻塞该操作的容忍程度,设定为range_max_bytes的指定倍数,超过该阈值则会立即阻塞写操作。值为0代表不生效。
kv.range_descriptor_cache.size integer 1000000 缓存Range描述符和租约持有者的最大数量。
kv.snapshot_rebalance.max_rate byte size 2.0 MiB 重新均衡快照的速率限制,单位为byte/sec。
kv.transaction.max_intents_bytes integer 256000 事务中写intents允许的最大字节数
kv.transaction.max_refresh_spans_bytes integer 256000 序列化事务中的refresh span允许的最大字节数
rocksdb.min_wal_sync_interval duration 0s RocksDB的WAL日志同步刷到硬盘的时间周期。
server.consistency_check.interval duration 24h0m0s 进行Range一致性检查的时间周期。值为0代表不进行检查。
server.declined_reservation_timeout duration 1s 存储设备快照操作被取消后禁止up-replication或是rebalancing操作的时长。
server.failed_reservation_timeout duration 5s 存储设备快照操作失败后禁止up-replication或是rebalancing操作的时长。
server.remote_debugging.mode string local 是否开启远程debug功能,可选值为any(不受限制)、local(只允许本地)、off(关闭)。
server.shutdown.drain_wait duration 0s 服务器在强制结束已有连接,继续执行剩下的shutdown操作之前等待的时间,期间处于unready状态。
server.shutdown.query_wait duration 10s 服务器等待查询结束的最长等待时间。
server.time_until_store_dead duration 5m0s 在指定时间周期内没有接收到一个节点的gossiped信息,则该节点视作为dead状态。
server.web_session_timeout duration 168h0m0s 新创建的网络session的有效时间。
sql.defaults.distsql enumeration 1 分布式SQL默认的执行模式 [off = 0, auto = 1, on = 2]
sql.distsql.distribute_index_joins boolean true 如果为true,则为每个有流量的节点实例化一个Join Reader进行分布式的Join。否则CockroachDB的Join操作只使用一个单独的Join Reader。
sql.distsql.interleaved_joins.enabled boolean true 如果为true,则生成SQL查询计划时尽可能使用Interleaved Table Join代替Merge Join。
sql.distsql.merge_joins.enabled boolean true 如果为true,则则生成SQL查询计划时尽可能使用Merge Join。
sql.distsql.temp_storage.joins boolean true 是否允许使用临时存储空间进行分布式的SQL Join操作。
sql.distsql.temp_storage.sorts boolean true 是否允许使用临时存储空间进行分布式的SQL Sort操作。
sql.distsql.temp_storage.workmem byte size 64 MiB 一个SQL操作所能使用的最大内存大小,超过该阈值则使用临时存储空间。
sql.metrics.statement_details.dump_to_logs boolean false 如果为true,则在定期清除收集到的语句相关的统计信息的时候,将内容输出到节点日志当中。
sql.metrics.statement_details.threshold duration 0s SQL执行时间超过指定阈值时触发收集统计信息。
sql.trace.log_statement_execute boolean false 是否开启语句执行相关的日志功能。
sql.trace.session_eventlog.enabled boolean false 是否开启session监控功能。
sql.trace.txn.enable_threshold duration 0s 事务执行时间超过指定阈值时开启监控,值为0时不启动。
timeseries.resolution_10s.storage_duration duration 720h0m0s 存储最近指定时长的时间序列数据。
timeseries.storage.enabled boolean true 是否存储集群的时间序列数据。不推荐用户在没有对该数据进行外部存储的情况下关闭该配置项。
trace.debug.enable boolean false 如果为true,则用户可在/debug网页查看到最近查询请求的监控信息。
trace.lightstep.token string 如果值为空,则使用该token值向LightStep发送监控信息。
trace.zipkin.collector string 如果值为空,则向指定的Zipkin实例 (例如:127.0.0.1:9411)发送监控信息。
若用户同时配置了trace.lightstep.token,则trace.zipkin.collector不起作用。
version custom validation 2.0 集群目前使用的CockroachDB版本