tidb的tidb組件的配置文件詳解


###############

 

 線上目錄配置:

[work@10.10.10.10 tidb-4000]$ tree
.
├── bin
│   └── tidb-server
├── conf
│   ├── cluster.conf
│   └── tidb.toml
├── log
│   ├── tidb-2021-04-08T00-47-00.241.log
│   ├── tidb-2021-04-18T00-56-52.252.log
│   ├── tidb-2021-05-02T00-45-05.759.log
│   ├── tidb-2021-05-12T00-53-14.403.log
│   ├── tidb-2021-06-03T01-46-40.885.log
│   ├── tidb-2021-06-09T05-22-31.200.log
│   ├── tidb-2021-06-09T06-10-51.666.log
│   ├── tidb-2021-06-09T07-58-11.618.log
│   ├── tidb-2021-06-09T10-04-06.202.log
│   ├── tidb-2021-06-09T10-55-25.922.log
│   ├── tidb-2021-06-09T11-30-06.829.log
│   ├── tidb-2021-06-09T12-39-52.668.log
│   ├── tidb-2021-06-09T13-37-27.505.log
│   ├── tidb-2021-06-09T14-29-26.031.log
│   ├── tidb-2021-06-09T15-26-53.880.log
│   ├── tidb-2021-06-13T00-54-49.814.log
│   ├── tidb-2021-07-02T00-51-44.270.log
│   ├── tidb-2021-09-01T15-02-37.474.log
│   ├── tidb.log
│   ├── tidb_slow-2021-08-21T14-05-26.423.log
│   ├── tidb_slow.log
│   └── tidb_error.log
└── scripts
    └── tidb_start.sh

 

 啟動腳本:

[work@10.10.10.10 tidb-4000]$ cat scripts/tidb_start.sh 
#!/bin/bash
set -e

# WARNING: This file was auto-generated. Do not edit!
#          All your edit might be overwritten!
DEPLOY_DIR=/home/work/tidb/tidb-4000

cd "${DEPLOY_DIR}" || exit 1
exec numactl --cpunodebind=1 --membind=1 env GODEBUG=madvdontneed=1 bin/tidb-server \
    -P 4000 \
    --status="10080" \
    --host="0.0.0.0" \
    --advertise-address="10.10.10.10" \
    --store="tikv" \
    --path="10.10.10.20:2379,10.10.10.21:2379,10.10.10.22:2379" \
    --log-slow-query="log/tidb_slow.log" \
    --config=conf/tidb.toml \
    --log-file="/home/work/tidb/tidb-4000/log/tidb.log" 2>> "/home/work/tidb/tidb-4000/log/tidb_error.log"

 

 tidb.toml文件:

[work@10.10.10.10 tidb-4000]$ cat conf/tidb.toml 
# WARNING: This file is auto-generated. Do not edit! All your modification will be overwritten!
# You can use 'tiup cluster edit-config' and 'tiup cluster reload' to update the configuration
# All configuration items you want to change can be added to:
# server_configs:
#   tidb:
#     aa.b1.c3: value
#     aa.b2.c4: value
[binlog]
enable = false
ignore-error = false

[log]
slow-query-file = "tidb-slow.log"
slow-threshold = 300

[performance]
max-procs = 20

[pessimistic-txn]
enable = false
max-retry-count = 256

[txn-local-latches]
capacity = 2048000
enabled = true

 

 

max-server-connections

  • TiDB 中同時允許的最大客戶端連接數,用於資源控制。
  • 默認值:0
  • 默認情況下,TiDB 不限制客戶端連接數。當本配置項的值大於 0 且客戶端連接數到達此值時,TiDB 服務端將會拒絕新的客戶端連接。

 

 

max-index-length

  • 用於設置新建索引的長度限制。
  • 默認值:3072
  • 單位:Byte
  • 目前的合法值范圍 [3072, 3072*4]。MySQL 和 TiDB v3.0.11 之前版本(不包含 v3.0.11)沒有此配置項,不過都對新建索引的長度做了限制。MySQL 對此的長度限制為 3072,TiDB 在 v3.0.7 以及之前版本該值為 3072*4,在 v3.0.7 之后版本(包含 v3.0.8、v3.0.9 和 v3.0.10)的該值為 3072。為了與 MySQL 和 TiDB 之前版本的兼容,添加了此配置項。

 

table-column-count-limit 從 v5.0 版本開始引入

  • 用於設置單個表中列的數量限制
  • 默認值:1017
  • 目前的合法值范圍 [1017, 4096]

 

index-limit 從 v5.0 版本開始引入

  • 用於設置單個表中索引的數量限制
  • 默認值:64
  • 目前的合法值范圍 [64, 512]

 

compatible-kill-query

  • 設置 KILL 語句的兼容性。
  • 默認值:false
  • TiDB 中 KILL xxx 的行為和 MySQL 中的行為不相同。為殺死一條查詢,在 TiDB 里需要加上 TIDB 關鍵詞,即 KILL TIDB xxx。但如果把 compatible-kill-query 設置為 true,則不需要加上 TIDB 關鍵詞。
  • 這種區別很重要,因為當用戶按下 Ctrl+C 時,MySQL 命令行客戶端的默認行為是:創建與后台的新連接,並在該新連接中執行 KILL 語句。如果負載均衡器或代理已將該新連接發送到與原始會話不同的 TiDB 服務器實例,則該錯誤會話可能被終止,從而導致使用 TiDB 集群的業務中斷。只有當您確定在 KILL 語句中引用的連接正好位於 KILL 語句發送到的服務器上時,才可以啟用 compatible-kill-query

txn-entry-size-limit 從 v5.0 版本開始引入

  • TiDB 單行數據的大小限制
  • 默認值:6291456
  • 單位:Byte
  • 事務中單個 key-value 記錄的大小限制。若超出該限制,TiDB 將會返回 entry too large 錯誤。該配置項的最大值不超過 125829120(表示 120MB)。
  • 注意,TiKV 有類似的限制。若單個寫入請求的數據量大小超出 raft-entry-max-size,默認為 8MB,TiKV 會拒絕處理該請求。當表的一行記錄較大時,需要同時修改這兩個配置。

 

txn-total-size-limit

  • TiDB 單個事務大小限制
  • 默認值:104857600
  • 單位:Byte
  • 單個事務中,所有 key-value 記錄的總大小不能超過該限制。該配置項的最大值不超過 10737418240(表示 10GB)。注意,如果使用了以 Kafka 為下游消費者的 binlog,如:arbiter 集群,該配置項的值不能超過 1073741824(表示 1GB),因為這是 Kafka 的處理單條消息的最大限制,超過該限制 Kafka 將會報錯。

max-txn-ttl

  • 單個事務持鎖的最長時間,超過該時間,該事務的鎖可能會被其他事務清除,導致該事務無法成功提交。
  • 默認值:3600000
  • 單位:毫秒
  • 超過此時間的事務只能執行提交或者回滾,提交不一定能夠成功。

committer-concurrency

  • 在單個事務的提交階段,用於執行提交操作相關請求的 goroutine 數量
  • 默認值:128
  • 若提交的事務過大,事務提交時的流控隊列等待耗時可能會過長,可以通過調大該配置項來加速提交。

stmt-count-limit

  • TiDB 單個事務允許的最大語句條數限制。
  • 默認值:5000
  • 在一個事務中,超過 stmt-count-limit 條語句后還沒有 rollback 或者 commit,TiDB 將會返回 statement count 5001 exceeds the transaction limitation, autocommit = false 錯誤。該限制只在可重試的樂觀事務中生效,如果使用悲觀事務或者關閉了事務重試,事務中的語句數將不受此限制。

 

 

 

 

 

 

 

 

 

 

 

 

##########

 

###############


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM