1. https://docs.pingcap.com/zh/tidb/stable/pd-configuration-file

PD 配置文件比命令行参数支持更多的选项。你可以在 conf/config.toml 找到默认的配置文件。

本文档只阐述未包含在命令行参数中的参数,命令行参数参见 PD 配置参数

 
小贴士

如果你需要调整配置项的值,请参考修改配置参数进行操作。

name

  • PD 节点名称。
  • 默认值:"pd"
  • 如果你需要启动多个 PD,一定要给 PD 使用不同的名字。

data-dir

  • PD 存储数据路径。
  • 默认值:"default.${name}"

client-urls

  • PD 监听的客户端 URL 列表。
  • 默认值:"http://127.0.0.1:2379"
  • 如果部署一个集群,client URLs 必须指定当前主机的 IP 地址,例如 "http://192.168.100.113:2379",如果是运行在 Docker 则需要指定为 "http://0.0.0.0:2379"

advertise-client-urls

  • 用于外部访问 PD 的 URL 列表。
  • 默认值:"${client-urls}"
  • 在某些情况下,例如 Docker 或者 NAT 网络环境,客户端并不能通过 PD 自己监听的 client URLs 来访问到 PD,这时候,你就可以设置 advertise URLs 来让客户端访问。
  • 例如,Docker 内部 IP 地址为 172.17.0.1,而宿主机的 IP 地址为 192.168.100.113 并且设置了端口映射 -p 2379:2379,那么可以设置为 advertise-client-urls="http://192.168.100.113:2379",客户端可以通过 http://192.168.100.113:2379 来找到这个服务。

peer-urls

  • PD 节点监听其他 PD 节点的 URL 列表。
  • 默认:"http://127.0.0.1:2380"
  • 如果部署一个集群,peer URLs 必须指定当前主机的 IP 地址,例如 "http://192.168.100.113:2380",如果是运行在 Docker 则需要指定为 "http://0.0.0.0:2380"

advertise-peer-urls

  • 用于其他 PD 节点访问某个 PD 节点的 URL 列表。
  • 默认值:"${peer-urls}"
  • 在某些情况下,例如 Docker 或者 NAT 网络环境,其他节点并不能通过 PD 自己监听的 peer URLs 来访问到 PD,这时候,你就可以设置 advertise URLs 来让其他节点访问
  • 例如,Docker 内部 IP 地址为 172.17.0.1,而宿主机的 IP 地址为 192.168.100.113 并且设置了端口映射 -p 2380:2380,那么可以设置为 advertise-peer-urls="http://192.168.100.113:2380",其他 PD 节点可以通过 http://192.168.100.113:2380 来找到这个服务。

initial-cluster

  • 初始化 PD 集群配置。
  • 默认值:"{name}=http://{advertise-peer-url}"
  • 例如,如果 name 是 "pd",并且 advertise-peer-urls 是 "http://192.168.100.113:2380",那么 initial-cluster 就是 "pd=http://192.168.100.113:2380"
  • 如果启动三台 PD,那么 initial-cluster 可能就是 pd1=http://192.168.100.113:2380, pd2=http://192.168.100.114:2380, pd3=192.168.100.115:2380

initial-cluster-state

  • 集群初始状态
  • 默认值:"new"

initial-cluster-token

  • 用于在集群初始化阶段标识不同的集群。
  • 默认值:"pd-cluster"
  • 如果先后部署多个集群,且多个集群有相同配置的节点,应指定不同的 token 来隔离不同的集群。

lease

  • PD Leader Key 租约超时时间,超时系统重新选举 Leader。
  • 默认值:3
  • 单位:秒

quota-backend-bytes

  • 元信息数据库存储空间的大小,默认 8GiB。
  • 默认值:8589934592

auto-compaction-mod

  • 元信息数据库自动压缩的模式,可选项为 periodic(按周期),revision(按版本数)。
  • 默认值:periodic

auto-compaction-retention

  • compaction-mode 为 periodic 时为元信息数据库自动压缩的间隔时间;compaction-mode 设置为 revision 时为自动压缩的版本数。
  • 默认值:1h

force-new-cluster

  • 强制让该 PD 以一个新集群启动,且修改 raft 成员数为 1。
  • 默认值:false

tso-update-physical-interval

  • TSO 物理时钟更新周期。
  • 在默认的一个 TSO 物理时钟更新周期内 (50ms),PD 最多提供 262144 个 TSO。如果需要更多的 TSO,可以将这个参数调小。最小值为 1ms
  • 缩短这个参数会增加 PD 的 CPU 消耗。根据测试,相比 50ms 更新周期,更新周期为 1ms 时,PD 的 CPU 占用率 (CPU usage) 将增加约 10%。
  • 默认值:50ms
  • 最小值:1ms

pd-server

pd-server 相关配置项。

server-memory-limit 从 v6.6.0 版本开始引入

 
警告

在当前版本中,该配置项为实验特性,不建议在生产环境中使用。

  • PD 实例的内存限制比例。0 值表示不设内存限制。
  • 默认值:0
  • 最小值:0
  • 最大值:0.99

server-memory-limit-gc-trigger 从 v6.6.0 版本开始引入

 
警告

在当前版本中,该配置项为实验特性,不建议在生产环境中使用。

  • PD 尝试触发 GC 的阈值比例。当 PD 的内存使用达到 server-memory-limit 值 * server-memory-limit-gc-trigger 值时,则会主动触发一次 Golang GC。在一分钟之内只会主动触发一次 GC。
  • 默认值:0.7
  • 最小值:0.5
  • 最大值:0.99

enable-gogc-tuner 从 v6.6.0 版本开始引入

 
警告

在当前版本中,该配置项为实验特性,不建议在生产环境中使用。

  • 是否开启 GOGC Tuner。
  • 默认值:false

gc-tuner-threshold 从 v6.6.0 版本开始引入

 
警告

在当前版本中,该配置项为实验特性,不建议在生产环境中使用。

  • GOGC Tuner 自动调节的最大内存阈值比例,即 server-memory-limit 值 * server-memory-limit-gc-trigger 值,超过阈值后 GOGC Tuner 会停止工作。
  • 默认值:0.6
  • 最小值:0
  • 最大值:0.9

flow-round-by-digit 从 v5.1 版本开始引入

  • 默认值:3
  • PD 会对流量信息的末尾数字进行四舍五入处理,减少 Region 流量信息变化引起的统计信息更新。该配置项用于指定对 Region 流量信息的末尾进行四舍五入的位数。例如流量 100512 会归约到 101000。默认值为 3。该配置替换了 trace-region-flow
 
注意

如果是从 v4.0 升级至当前版本,升级后的 flow-round-by-digit 行为和升级前的 trace-region-flow 行为默认保持一致:如果升级前 trace-region-flow 为 false,则升级后 flow-round-by-digit 为 127;如果升级前 trace-region-flow 为 true,则升级后 flow-round-by-digit 为 3。

min-resolved-ts-persistence-interval 从 v6.0.0 版本开始引入

  • 设置 PD leader 对集群中 Resolved TS 最小值进行持久化的间隔时间。如果该值设置为 0,表示禁用该功能。
  • 默认值:在 v6.3.0 之前版本中为 "0s",在 v6.3.0 及之后的版本中为 "1s",即最小正值。
  • 最小值:"0s"
  • 单位:秒
 
注意

对于从 v6.0.0~v6.2.0 升级上来的集群,min-resolved-ts-persistence-interval 的默认值在升级后将不会发生变化,即仍然为 "0s"。若要开启该功能,需要手动修改该配置项的值。

security

安全相关配置项。

cacert-path

  • CA 文件路径
  • 默认值:""

cert-path

  • 包含 X509 证书的 PEM 文件路径
  • 默认值:""

key-path

  • 包含 X509 key 的 PEM 文件路径
  • 默认值:""

redact-info-log 从 v5.0 版本开始引入

  • 控制 PD 日志脱敏的开关
  • 该配置项值设为 true 时将对 PD 日志脱敏,遮蔽日志中的用户信息。
  • 默认值:false

log

日志相关的配置项。

level

  • 指定日志的输出级别。
  • 可选值:"debug","info","warn","error","fatal"
  • 默认值:"info"

format

  • 日志格式。
  • 可选值:"text","json"
  • 默认值:"text"

disable-timestamp

  • 是否禁用日志中自动生成的时间戳。
  • 默认值:false

log.file

日志文件相关的配置项。

max-size

  • 单个日志文件最大大小,超过该值系统自动切分成多个文件。
  • 默认值:300
  • 单位:MiB
  • 最小值为 1

max-days

  • 日志保留的最长天数。
  • 如果未设置本参数或把本参数设置为默认值 0,PD 不清理日志文件。
  • 默认:0

max-backups

  • 日志文件保留的最大个数。
  • 如果未设置本参数或把本参数设置为默认值 0,PD 会保留所有的日志文件。
  • 默认:0

metric

监控相关的配置项。

interval

  • 向 Prometheus 推送监控指标数据的间隔时间。
  • 默认:15s

schedule

调度相关的配置项。

max-merge-region-size

  • 控制 Region Merge 的 size 上限,当 Region Size 大于指定值时 PD 不会将其与相邻的 Region 合并。
  • 默认:20
  • 单位:MiB

max-merge-region-keys

  • 控制 Region Merge 的 key 上限,当 Region key 大于指定值时 PD 不会将其与相邻的 Region 合并。
  • 默认:200000

patrol-region-interval

  • 控制 replicaChecker 检查 Region 健康状态的运行频率,越短则运行越快,通常状况不需要调整
  • 默认:10ms

split-merge-interval

  • 控制对同一个 Region 做 split 和 merge 操作的间隔,即对于新 split 的 Region 一段时间内不会被 merge。
  • 默认:1h

max-snapshot-count

  • 控制单个 store 最多同时接收或发送的 snapshot 数量,调度受制于这个配置来防止抢占正常业务的资源。
  • 默认:64

max-pending-peer-count

  • 控制单个 store 的 pending peer 上限,调度受制于这个配置来防止在部分节点产生大量日志落后的 Region。
  • 默认值:64

max-store-down-time

  • PD 认为失联 store 无法恢复的时间,当超过指定的时间没有收到 store 的心跳后,PD 会在其他节点补充副本。
  • 默认值:30m

max-store-preparing-time 从 v6.1.0 版本开始引入

  • 控制 store 上线阶段的最长等待时间。在 store 的上线阶段,PD 可以查询该 store 的上线进度。当超过该配置项指定的时间后,PD 会认为该 store 已完成上线,无法再次查询这个 store 的上线进度,但是不影响 Region 向这个新上线 store 的迁移。通常用户无需修改该配置项。
  • 默认值:48h

leader-schedule-limit

  • 同时进行 leader 调度的任务个数。
  • 默认值:4

region-schedule-limit

  • 同时进行 Region 调度的任务个数
  • 默认值:2048

hot-region-schedule-limit

  • 控制同时进行的 hot Region 任务。该配置项独立于 Region 调度。
  • 默认值:4

hot-region-cache-hits-threshold

  • 设置识别热点 Region 所需的分钟数。只有当 Region 处于热点状态持续时间超过此分钟数时,PD 才会参与热点调度。
  • 默认值:3

replica-schedule-limit

  • 同时进行 replica 调度的任务个数。
  • 默认值:64

merge-schedule-limit

  • 同时进行的 Region Merge 调度的任务,设置为 0 则关闭 Region Merge。
  • 默认值:8

high-space-ratio

  • 设置 store 空间充裕的阈值。当节点的空间占用比例小于该阈值时,PD 调度时会忽略节点的剩余空间,主要根据实际数据量进行均衡。此配置仅在 region-score-formula-version = v1 时生效。
  • 默认值:0.7
  • 最小值:大于 0
  • 最大值:小于 1

low-space-ratio

  • 设置 store 空间不足的阈值。当某个节点的空间占用比例超过该阈值时,PD 会尽可能避免往该节点迁移数据,同时主要根据节点剩余空间大小进行调度,避免对应节点的磁盘空间被耗尽。
  • 默认值:0.8
  • 最小值:大于 0
  • 最大值:小于 1

tolerant-size-ratio

  • 控制 balance 缓冲区大小。
  • 默认值:0(为 0 为自动调整缓冲区大小)
  • 最小值:0

enable-cross-table-merge

  • 设置是否开启跨表 merge。
  • 默认值:true

region-score-formula-version 从 v5.0 版本开始引入

  • 设置 Region 算分公式版本。
  • 默认值:v2
  • 可选值:v1,v2。v2 相比于 v1,变化会更平滑,空间回收引起的调度抖动情况会得到改善。
 
注意

如果是从 v4.0 升级至当前版本,默认不自动开启该算分公式新版本,以保证升级前后 PD 行为一致。若想切换算分公式的版本,使用需要手动通过 pd-ctl 设置切换,详见 PD Control 文档。

enable-joint-consensus 从 v5.0 版本开始引入

  • 是否使用 Joint Consensus 进行副本调度。关闭该特性时,PD 将采用一次调度一个副本的方式进行调度。
  • 默认值:true

enable-diagnostic 从 v6.3.0 版本开始引入

  • 是否开启诊断功能。开启特性时,PD 将会记录调度中的一些状态来帮助诊断。开启时会略微影响调度速度,在 Store 数量较多时会消耗较大内存。
  • 默认值:从 v7.1.0 起,默认值从 false 变更为 true。如果从 v7.1.0 之前版本的集群升级至 v7.1.0 及之后的版本,该默认值不发生变化。

hot-regions-write-interval 从 v5.4.0 版本开始引入

  • 设置 PD 存储 Hot Region 信息时间间隔。
  • 默认值:10m
 
注意

Hot Region 的信息一般 3 分钟更新一次。如果设置时间间隔小于 3 分钟,中间部分的更新可能没有意义。

hot-regions-reserved-days 从 v5.4.0 版本开始引入

  • 设置 PD 保留的 Hot Region 信息的最长时间。单位为天。
  • 默认值: 7

replication

副本相关的配置项。

max-replicas

  • 所有副本数量,即 leader 与 follower 数量之和。默认为 3,即 1 个 leader 和 2 个 follower。当此配置被在线修改后,PD 会在后台通过调度使得 Region 的副本数量符合配置。
  • 默认值:3

location-labels

isolation-level

strictly-match-label

  • 打开强制 TiKV Label 和 PD 的 location-labels 是否匹配的检查
  • 默认值:false

enable-placement-rules

store-limit-version 从 v7.1.0 版本开始引入

 
警告

在当前版本中,将该配置项设置为 "v2" 为实验特性,不建议在生产环境中使用。

  • 设置 store limit 工作模式
  • 默认值:v1
  • 可选值:
    • v1:在 v1 模式下,你可以手动修改 store limit 以限制单个 TiKV 调度速度。
    • v2:(实验特性)在 v2 模式下,你无需关注 store limit 值,PD 将根据 TiKV Snapshot 执行情况动态调整 TiKV 调度速度。详情请参考 Store Limit v2 原理

label-property

标签相关的配置项。

key

  • 拒绝 leader 的 store 带有的 label key。
  • 默认值:""

value

  • 拒绝 leader 的 store 带有的 label value。
  • 默认值:""

dashboard

PD 中内置的 TiDB Dashboard 相关配置项。

tidb-cacert-path

  • CA 根证书文件路径。可配置该路径来使用 TLS 连接 TiDB 的 SQL 服务。
  • 默认值:""

tidb-cert-path

  • SSL 证书文件路径。可配置该路径来使用 TLS 连接 TiDB 的 SQL 服务。
  • 默认值:""

tidb-key-path

  • SSL 私钥文件路径。可配置该路径来使用 TLS 连接 TiDB 的 SQL 服务。
  • 默认值:""

public-path-prefix

  • 通过反向代理访问 TiDB Dashboard 时,配置反向代理提供服务的路径前缀。
  • 默认值:"/dashboard"
  • 若不通过反向代理访问 TiDB Dashboard,请勿配置该项,否则可能导致 TiDB Dashboard 无法正常访问。关于该配置的详细使用场景,参见通过反向代理使用 TiDB Dashboard

enable-telemetry

  • 是否启用 TiDB Dashboard 遥测功能。
  • 默认值:false
  • 参阅遥测了解该功能详情。

replication-mode

Region 同步模式相关的配置项。更多详情,请参阅启用自适应同步模式

Controllor

PD 中内置的 Resource Control 相关的配置项。

degraded-mode-wait-duration

  • 触发降级模式需要等待的时间。降级模式是指在 Local Token Bucket (LTB) 和 Global Token Bucket (GTB) 失联的情况下,LTB 将回退到默认的资源组配置,不再有 GTB 授权 token,从而保证在网络隔离或者异常情况下,服务不受影响。
  • 默认值: 0s
  • 默认为不开启降级模式

request-unit

下面是 Request Unit (RU) 相关的配置项。

read-base-cost

  • 每次读请求转换成 RU 的基准系数
  • 默认值: 0.25

write-base-cost

  • 每次写请求转换成 RU 的基准系数
  • 默认值: 1

read-cost-per-byte

  • 读流量转换成 RU 的基准系数
  • 默认值: 1/(64 * 1024)
  • 1 RU = 64 KiB 读取字节

write-cost-per-byte

  • 写流量转换成 RU 的基准系数
  • 默认值: 1/1024
  • 1 RU = 1 KiB 写入字节

read-cpu-ms-cost

  • CPU 转换成 RU 的基准系数
  • 默认值: 1/3
  • 1 RU = 3 毫秒 CPU 时间

[转帖]PD 配置文件描述的更多相关文章

  1. [转帖]linux文件描述符文件/etc/security/limits.conf

    linux文件描述符文件/etc/security/limits.conf https://blog.csdn.net/fanren224/article/details/79971359 需要多学习 ...

  2. Linux下的文件描述符

    文件描述符是一个简单的整数,用以标明每一个被进程所打开的文件和socket.第一个打开的文件是0,第二个是1,依此类推.Unix 操作系统通常给每个进程能打开的文件数量强加一个限制.更甚的是,unix ...

  3. Kubernetes 笔记 05 yaml 配置文件详解

    本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. Hi,大家好, ...

  4. K8s之配置文件kubeconfig生成

    在开启了 TLS 的集群中,每当与集群交互的时候少不了的是身份认证,使用 kubeconfig(即证书) 和 token 两种认证方式是最简单也最通用的认证方式. 以kubectl为例介绍kubeco ...

  5. MyBatis基础入门《五》核心配置文件

    MyBatis基础入门<五>核心配置文件 描述: 在前面的章节中,简单的学习使用了一下mybatis,对于配置文件没有过多详细说明. 这里先描述项目中的一个核心配置文件:mybatis-c ...

  6. linux下文件描述符的介绍

    当某个程序打开文件时,操作系统返回相应的文件描述符,程序为了处理该文件必须引用此描述符.所谓的文件描述符是一个低级的正整数.最前面的三个文件描述符(0,1,2)分别与标准输入(stdin),标准输出( ...

  7. IntelliJ IDEA 2017版 开发SpringBoot的全局配置文件使用

    一.全局配置文件 描述:     Spring Boot项目使用一个全局的配置文件application.properties或者是application.yml,在resources目录下或者类路径 ...

  8. SqlServer 更改复制代理配置文件参数及两种冲突策略设置

    原文:SqlServer 更改复制代理配置文件参数及两种冲突策略设置 由于经常需要同步测试并更改代理配置文件属性,所以总结成脚本,方便测试. 可更新订阅的冲突策略有两种情况:一是在发布中冲突,即订阅数 ...

  9. pytorch实现yolov3(2) 配置文件解析及各layer生成

    配置文件 配置文件yolov3.cfg定义了网络的结构 .... [convolutional] batch_normalize=1 filters=64 size=3 stride=2 pad=1 ...

  10. Mongodb 与 Mongoose 的使用

    目标 无明确目标 知识点 了解 mongodb (http://www.mongodb.org/ ) 学习 mongoose 的使用 (http://mongoosejs.com/ ) 课程内容 mo ...

随机推荐

  1. CSS3学习笔记引言

    开始我们要来介绍css: CSS(全称为Cascading Style Sheets)是一种用于描述HTML.XML等文档样式的样式语言,它能够定义元素的显示方式,如字体.颜色.布局等. CSS可以把 ...

  2. 面试官:请列举 Spring 的事务会失效的场景

    在日常工作中,如果对 Spring 的事务管理功能使用不当,则会造成 Spring 事务不生效的问题.而针对 Spring 事务不生效的问题,也是在跳槽面试中被问的比较频繁的一个问题. 今天,我们就一 ...

  3. 文心一言 VS 讯飞星火 VS chatgpt (50)-- 算法导论6.2 2题

    二.参考过程 MAX-HEAPIFY,写出能够维护相应最小堆的 MIN-HEAPIFY(A,i)的伪代码,并比较 MIN-HEAPIFY 与 MAX-HEAPIFY 的运行时间. 文心一言: MIN- ...

  4. RasaGPT对话系统的工作原理

    RasaGPT 结合了 Rasa 和 Langchain 这 2 个开源项目,当超出 Rasa 现有意图(out_of_scope)的时候,就会执行 ActionGPTFallback,本质上就是利用 ...

  5. 如何去学好JS的8条小建议

    摘要:如何才能学好JS?在这里给大家总结一些学习Js的经验,希望能对你们有所帮助. 在我们第一阶段完成HTML+CSS的学习之后,很多同学都会被第二阶段JS难倒--JS语法.JS数据类型.JS对象,J ...

  6. 详解SQL优化必备:并行执行框架和执行计划

    摘要:在关系型数据库中,优化器是数据库的核心组件之一,由于一些列因素都会影响语句的执行,优化器综合权衡各个因素,在众多的执行计划中选择认为是最佳的执行计划. 本文分享自华为云社区<华为云Gaus ...

  7. 带你读顶会论文丨基于溯源图的APT攻击检测

    摘要:本次分享主要是作者对APT攻击部分顶会论文阅读的阶段性总结,将从四个方面开展. 本文分享自华为云社区<[论文阅读] (10)基于溯源图的APT攻击检测安全顶会总结>,作者:eastm ...

  8. AI为啥能读懂说话人的情感?

    摘要:本文介绍了语音情感识别领域的发展现状,挑战,重点介绍了处理标注数据缺乏的问题. 本文分享自华为云社区<语音情感识别的应用和挑战>,作者:SSIL_SZT_ZS. 情感在人与人的交流中 ...

  9. CANN 5.0硬核技术抢先看

    摘要:2021年12月,CANN5.0版本也将与大家正式见面,通过软硬件协同优化,该版本将会实现训练性能再翻倍,凭实力展现AI领域的「中国速度」! 本文分享自华为云社区<CANN 5.0硬核技术 ...

  10. Solon v1.11.3 发布,第101个发布版本喽

    一个更现代感的 Java 应用开发框架:更快.更小.更自由.没有 Spring,没有 Servlet,没有 JavaEE:独立的轻量生态.主框架仅 0.1 MB. @Controller public ...