予防
TiDBであるオペレーティングシステムのメモリ割り当て戦略を変更することができないだけであることが許可され2
0
、または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サーバーの常駐メモリは、実際のヒープメモリとは大きく異なります。
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の初期値として使用されます。