设为首页 收藏本站
查看: 841|回复: 6

[经验分享] MySQL Thread pool 操作过程

[复制链接]
累计签到:77 天
连续签到:1 天
发表于 2013-3-27 08:34:20 | 显示全部楼层 |阅读模式
Thread pool 操作过程:
     thread pool 包含一定数量的 thread groups,每个groups 管理一定量的client connections,当mysql建立 connection 时,thread pool会以循环的方式(round-robin fashion)将其分配到其中的一个 thread groups中。
     thread_pool_size 规定了thread groups 的数量,这样也就规定了同时可以执行多少个statement 可取值为 1—64,每个thread group 的最大线程数是4096.
      thread pool 将 connection 和threads 分隔开,所以connection 和thread 和没有固定的联系。
      算法:
      每个 thread group 有一个监听线程,该线程监听那些从connection 发送过滤的statement,当接受到a statement 的时候,thread group 会有两个选择;立即执行或者放入队列稍后执行。
      当接受到的只是一个语句,而且没有其他语句处于队列,或者当前没有语句正在执行,那么就会立即执行该语句,否则的话该语句就会放入到队列中。
      当立即执行该语句时,那监控线程就会来执行次任务,此时意味着在该thread group 中临时没有线程处于监听状态,如果该语句执行的很快,那么该线程还会返回来继续处于监听状态。否则的话,thread pool 就会在需要的时候创建一个新的线程来监听。 thread pool 有一个后台线程来周期的监控thread group的状态,以免因为执行SQL时thread group 被block(比如遇到disk io 产生中断等)
      thread_pool_stall_limit 参数取值范围60ms ----  6s,该值代表了该语句将要结束并且要执行下一个语句的时间间隔(线程在超过thread_pool_size时,会等待thread_pool_stall_limit  ms后创建新线程,防止线程池瞬间扩展而还来不必要的线程开销)。较小的值 允许新的线程快速的启动,这样也可以防止死锁的产生。对于那些长时间执行的statement,适合较大的值,这样防止同时执行太多的statement。
      thread pool 专注于并发的短时间运行的statement ???
      当statement遇到disk io时,或者row lock或者table lock的时候,会造成 thread group 变的不可用,此时 thread pool 有一个回调机制来让该group 内开启一个新的thread 来执行其他的statement,当blocked thread 返回的时候,thread pool立马使用。
      对于队列: high-priority queue  和 low-priority queue
      一般情况下,事务里的第一个statement会被放到 低级别的队列中,其他的语句会被放到较高级别的。 thread_pool_high_priority_connection 可以将所有statement 都放到 高级别的队列中。
      如果语句针对的是非事务型的存储引擎,或者存储引擎 autocommit=1 所有的语句都会被放入到 low 级别的队列中,
      当thread group 选择队列中的语句开始执行的时候,先检查高优先级的队列,然后是低优先级的队列,对于发现的语句,它会从队列中移除并开始执行。
      如果某个语句在低优先级的队列中时间太长,thread pool 会将其放入到高优先级的队列中,thread_pool_prio_kickup_timer 参数来控制这个时间。
   thread pool 会选择重用最活跃的threads 来充分利用CPU的缓存,这个小小的调整对性能影响很大。
      下面是当thread group 有多个threads 活跃时举出的实例:
   1、一个线程执行一个statement,但是时间已经超过了 stalled time,thread group 会 开启一个新的thread 来执行其他的statement,设置当第一个语句还在执行过程中。。
   2、一个线程正在执行一个statement,然后被 blocked并被thread pool 检测到,这个时候此时 该 thread group 允许开启一个新的线程来执行另一个statement。
   3、一个线程正在执行一个statement,然后被blocked但没有被 thread pool检测到,这个时候只有等到 stalled 时间 才能开启一个新的线程来执行新的statement
      在某些线程 被blocked 但不被thread pool 检测到 但也不会阻止其他语句的执行也不会造成thread pool 死锁 这些情况是很重要的。
   1、长时间运行的statement,
   2、Binary log dump threads
   3、Statements blocked on a row lock, table lock, sleep, or any other blocking activity that has not been reported back to the thread pool by MySQL Server or a storage engine.
  
     以上情况,为防止死锁的产生,该statement 都会被放到stalled 类别对待,
     最大的线程数是the sum of max_connections and thread_pool_size

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-4422-1-1.html 上篇帖子: 怎样往mysql中导数据执行效率高 下篇帖子: MySQL中DATE类型定义
0

尚未签到

发表于 2013-3-27 08:42:03 | 显示全部楼层
勿以坑小而不灌,勿以坑大而灌之。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-18 10:22:14 | 显示全部楼层
微机原理闹危机,随机过程随机过,实变函数学十遍,汇编语言不会编!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-22 22:08:18 | 显示全部楼层
路过,支持一下啦

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-29 21:01:33 | 显示全部楼层
沙发!沙发!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-6-5 19:02:34 | 显示全部楼层
花前月下,不如花钱“日”下!*^_^*

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-6-14 10:30:30 | 显示全部楼层
女,喜甜食,甚胖!该女有一癖好:痛恨蚂蚁,见必杀之。问其故曰:这小东西,那么爱吃甜食,腰还那么细!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表