searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Mysql大量unauthenticated user状态进程的问题分析

2023-10-27 06:28:56
14
0

一、问题表现

1、大量unauthenticated user状态进程,如下图

2、unauthenticated user状态进程的TIME都很大,如下图

二、问题分析

如下图pstack栈信息。

线程池中的线程进行等待超时,使用了pthread_cond_timedwait上的第三个参数是绝对时间。

比如需要等待3分钟,现在7点,则传递7:03,如果调整了系统时间,比如系统时间调整到6点,该函数同样要等到7:03,造成等待了1个小时。

 因为以上绝对时间是dump线程传进来的,新建连接 检查到线程池队列里有挂起的event 所以都等待了,造成以上现象。

三、观点验证

将binglog dump进程停掉之后,发现unauthenticated user状态进程降为0,以上分析得到确认。

四、问题原因

手动调整了数据库服务器时间,或NTP时间跳变。

五、可能的解决方案

1、确认ntp服务同步正常,避免time step;

2、关闭线程池来规避以上问题, 配置文件中thread_handling = one-thread-per-connection

0条评论
0 / 1000
陈****超
2文章数
0粉丝数
陈****超
2 文章 | 0 粉丝
陈****超
2文章数
0粉丝数
陈****超
2 文章 | 0 粉丝
原创

Mysql大量unauthenticated user状态进程的问题分析

2023-10-27 06:28:56
14
0

一、问题表现

1、大量unauthenticated user状态进程,如下图

2、unauthenticated user状态进程的TIME都很大,如下图

二、问题分析

如下图pstack栈信息。

线程池中的线程进行等待超时,使用了pthread_cond_timedwait上的第三个参数是绝对时间。

比如需要等待3分钟,现在7点,则传递7:03,如果调整了系统时间,比如系统时间调整到6点,该函数同样要等到7:03,造成等待了1个小时。

 因为以上绝对时间是dump线程传进来的,新建连接 检查到线程池队列里有挂起的event 所以都等待了,造成以上现象。

三、观点验证

将binglog dump进程停掉之后,发现unauthenticated user状态进程降为0,以上分析得到确认。

四、问题原因

手动调整了数据库服务器时间,或NTP时间跳变。

五、可能的解决方案

1、确认ntp服务同步正常,避免time step;

2、关闭线程池来规避以上问题, 配置文件中thread_handling = one-thread-per-connection

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0