写入一个单行超过100MB的数据后,现象是:TIDB v5.0.1 的TPS降到了个位数,处理时间普遍是1分钟左右。客户端收到Server is Busy的错误。写入大行的程序停了,TIDB也一直无法恢复正常。
我怀疑跟 scheduler-pending-write-threshold
写入队列默认大小100MB有关,但就算这样,TIDB不应该一直无法恢复吧,请帮忙解答,谢谢。
写入一个单行超过100MB的数据后,现象是:TIDB v5.0.1 的TPS降到了个位数,处理时间普遍是1分钟左右。客户端收到Server is Busy的错误。写入大行的程序停了,TIDB也一直无法恢复正常。
我怀疑跟 scheduler-pending-write-threshold
写入队列默认大小100MB有关,但就算这样,TIDB不应该一直无法恢复吧,请帮忙解答,谢谢。
有日志信息可以提供出来么?
你好,想了解下是什么业务场景和数据,需要写这么大 value
scheduler-pending-write-threshold
是需要调大一些,另外 txn-entry-size-limit
和 raft-entry-max-size
参数设置多少
https://docs.pingcap.com/zh/tidb/stable/tidb-configuration-file#txn-entry-size-limit-从-v50-版本开始引入
Server is Busy 可以看下 TiKV-Details 监控 Errors 面板具体是哪种类型的报错
目前txn-entry-size-limit设置为20MB, raft-entry-max-size 设置为30MB。
多少行都是6MB以内,但有少数的一些行可能比较大。可能过100MB
这样如果超过 100MB 没有遇到 entry too large 的报错么
可以将 txn-entry-size-limit 和 raft-entry-max-size 分别调到 120MB 和 128MB,同时将 scheduler-pending-write-threshold 调大到 1GB
不知道是什么数据,这么大数据为啥不考虑存为对象到文件或 S3,数据库存个对象地址?
你说的没错,大对象存关系数据库的确不太合适,不过这个是有历史原因的,一时半会还比较难改。