官方參考
注意事項
TiDB不允許修改 作業系統記憶體分配策略為 ,只允許為 20 或 1
TUG修改記憶體使用策略導致 TiDB自動下線
什么是作業系統記憶體分配策略?
調整TiDB-Server的記憶體使用上限tidb3.0
1 修改 inventory.ini
inventory.ini組態檔最后添加MemoryLimit=25G
- 根據自己機器實際的記憶體來設定
- 當 TiDB-Server 行程的
常駐記憶體超過這個限制,行程將被殺死 - 并且在TiDB-Server的日志中拋出 OOM 例外
[root@test ~]# cat /etc/systemd/system/tidb-4000.service
[Unit]
Description=tidb-4000 service
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
# 常駐記憶體上限
MemoryLimit=25G
LimitNOFILE=1000000
#LimitCORE=infinity
LimitSTACK=10485760
User=tidb
ExecStart=/home/tidb/deploy/scripts/run_tidb.sh
Restart=always
RestartSec=15s
[Install]
WantedBy=multi-user.target
[root@dev11 ~]#
注:這個操作改變的是 /etc/systemd/system/tidb-4000.service 檔案中的配置
[root@hostname ~]# cat /etc/systemd/system/tidb-4000.service | grep MemoryLimit
MemoryLimit=25G
[root@hostname ~]#
TiDB Server 常駐記憶體與實際堆記憶體相差較大
2 滾動更新 tidb (修改完組態檔一定要更新配置)
[root@hostname ~]# ansible-playbook rolling_update.yml --tags=tidb
修改日志保存天數、設定最大索引長度
修改tidb.yml 一定要對應版本的配置來配置
tidb3.0修改
設定日志保留天數
max-days: 10
以位元組為單位設定查詢的記憶體配額,默認32G
mem-quota-query: 1073741824
設定最大索引長度
max-index-length: 12288
[root@hostname ~]# ansible-playbook rolling_update.yml --tags=tidb
tidb4.0修改
執行:
tiup cluster edit-config test-cluster
添加以下配置
server_configs:
tidb:
# 以位元組為單位設定查詢的記憶體配額,4.0默認1G
mem-quota-query: 1073741824
# 設定最大索引長度
max-index-length: 12288
# 最長的 SQL 輸出長度,(變更)4.0需要修改
log.query-log-max-len: 6000
# 設定日志保留天數
log.file.max-days: 10
tikv:
pd:
重新加載組態檔
tiup cluster reload tidb-dev -R tidb,tikv
或
tiup cluster reload tidb-dev -N ip:port
mem-quota-query
- 單條 SQL 陳述句可以占用的最大記憶體閾值,單位為位元組,
默認值:1073741824
超過該值的請求會被 oom-action 定義的行為所處理,
該值作為系統變數 tidb_mem_quota_query 的初始值,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/222741.html
標籤:其他
