TiDB 连接异常

集群拓扑结构:

1.2.0.11 pd、tidb(各一个实例)监控

1.2.0.12 tikv两个实例

1.2.0.14 tikv两个实例

从监控中看,tidb没有down掉的显示,tiup cluster display test-tidb. 和http://1.2.0.11:9090/targets显示节点都正常启着。

今天发现TiDB集群,一会儿能正常连接,一会儿连接不上,一会儿要很长时间才能连接上。

应用和数据库管理客户端都出现上述情况。

图1是使用navicat连集群,连接很长时间,最后报错:如图2. 报错后,重新连集群,很快就连上了如图3.

image

图1


图2

image

图3

在多次测试中也有如下错误:
image

图4

客户端一直连接集群时,tidb.log有很多图5中显示的日志:

1 个赞
  1. 可以检查一下 tidb 节点有没有重启的情况
  2. 在 tidb 节点机器上通过 mysql 命令行连接会有这个问题吗
1 个赞

您好:非常感谢

  1. 可以检查一下 tidb 节点有没有重启的情况

是,今天tidb节点重启了很多次,目前还没有查明重启的原因。

  1. 在 tidb 节点机器上通过 mysql 命令行连接会有这个问题吗

在 tidb 节点机器,通过 mysql 命令行,使用外网和内网都可以正常登录,但是在同一区域下的其他机器,只能通过内网登录,外网登录就会报错:ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading initial communication packet’, system error: 0

1 个赞
  1. 重启的原因可以再看下 系统日志 dmesg ,或者 /var/log/messages 来查看
  2. 外网的话,需要检查防火墙,白名单等设置
1 个赞

最终确认问题原因:

   由于pd、tidb、监控组件全部署在同一台机器上,该机器的配置为:CPU:8C 内存:15G,磁盘非SSD。在测试过程中,导致该机器的CPU耗尽,多次出现OOM的情况,导致tidb组件多次重启,从而呈现出:一会儿能正常连接,一会儿连接不上的问题。

解决方法:

 1.限制单挑sql使用的最大内存。tidb组件的配置:mem-quota-query

 2.或者,将tidb组件与pd组件分离,将tidb组件迁移到配置更高的机器上。

可参考:https://docs.pingcap.com/zh/tidb/v4.0/tidb-troubleshooting-map#32-oom-问题

1 个赞

:+1:

1 个赞

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。