"commit_ts is too large, fallback to normal 2PC" 这个问题如何解决

你这内存还好吧,不能只看free也要看cache

这个是刚才查出来的通过CLUSTER_TIDB_TRX中的ALL_SQL_DIGESTS 这个

奥,如果缓冲没影响的话,排除内存影响,cpu负载也不高

看看这个。prewrite的图表是什么情况?

奇怪的地方在于你没有看到有insert的慢查询。这里我也没想通是为啥。

当时网络卡顿,主机资源紧张,可能引发这个2pc失败

prewrite监控如下



资源应该不算紧张,cpu很空闲,磁盘负载也一般,内存如上面

看着没啥问题。实际写入也不慢,也没有慢查询,就是报错,退回2pc执行事务。

查查ntp时间同步有问题嘛?

image
时间看着也正常

1 个赞

那这个问题可以忽略吗,我看一直报这个

你可以这么理解,2pc执行事务是标准配置,1pc和异步提交属于优化。

这个报错就是说,因为某些原因不能使用1pc和异步提交,要退回2pc执行了。属于有些性能优化的手段没用上。不过整体又没有慢查询,我觉得这个错误可以忽略。

如果要往下查的话,要看看这个key属于那个表,到底是写什么表的时候有问题。
也许可以缩小一下排查的范围。

用这个工具decode一下key,也许能找到table id,就能定位到是在写那个表的时候出现的这个问题。

好,我尝试一下

https://docs.pingcap.com/zh/tidb/stable/tidb-functions#tidb_decode_key

这个函数也可以decode key



我解析的有问题吗?这个库是通过juicefs写入的我不知道写到了哪里

1 个赞

原来如此,难怪tidb上看不到慢查询。
juicefs有卡顿的感觉吗?
要是没感觉就算了。有感觉这个问题也很难查了。
看看其他大佬有没有办法。

感谢大佬,目前juicefs没有感觉到卡顿,我想问下,如何查询tikv上mystor这个库,一直找不到方法

rawkv可以通过专门的客户端访问。除了go其他语言的也有。

好我尝试一下