暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

thead错误设置导致hang死

原创 进击的CJR 2023-05-24
4518


异常出现

业务反应数据库很卡,登录数据库查看发现很多线程是login 状态

官网对login的解释是

The initial state for a connection thread until the client has been authenticated successfully.

意思是连接的线程一直处于初始状态,有很多,说明应该是被阻塞了。


查看线程设置

发现thread_pool_max_threads被错误设置成5


分析

thread_pool_max_threads 

threadpool中最大线程数目,所有group中worker线程总数超过该限制后不能继续创建更多线程,默认100000


thread_pool_oversubscribe 

一个group中线程数过载限制,当一个group中线程数超过次限制后,继续创建worker线程会被延迟,默认3


thread_pool_size 

threadpool中group数量,默认为cpu核心数,server启动时自动计算


最大并发数thread_pool_oversubscribe * thread_pool_size


由以上信息可以知道当thread_pool_max_threads被设置为5后,就不能继续创建线程给新进入的连接使用了,因此才会被阻塞,处于login的状态。


处理

将thread_pool_max_threads改为400

将thread_pool_oversubscribe从3调整为5

查看线程状态

Threads_connected   这个数值指的是打开的连接数.

Threads_running       这个数值指的是激活的连接数,这个数值一般远低于connected数值.

Threads_connected  跟show processlist结果相同,表示当前连接数。准确的来说,Threads_running是代表当前并发数




「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论