innodb_thread_concurrency 和 innodb_concurrency_tickets

来源:互联网 发布:汇成凯网络 编辑:程序博客网 时间:2024/05/22 14:51

innodb_thread_concurrency 可能是很常见的参数配置,就是innodb内部的线程数量的控制参数.据说最好的配置是服务器核数的2倍.

innodb_concurrency_tickets 这个参数也是对innodb内部线程限制的参数.官方讲解我们不讲,我只将我的理解:


这两个参数的配合使用就是这样的一个故事.


一个屋子内有一个头牌妓女叫innodb, 大家都想接近她.

老鸨(MySQL)不可能允许那么多人同时进屋去,就限制每次只能进去几个(上下和手嘛..),这个限制的名字就叫(innodb_thread_concurrency).

其他的人怎么办,只能在外面排成长队依次进入.同时老鸨说,大爷你们可以睡一会,这样就不用苦苦等待了.

这里老鸨就会个一段时间(innodb_thread_sleep_delay)叫醒一位大爷,以免睡不醒了.

老鸨也怕总是叫醒大爷不好交代,就看快到了再叫,老鸨自己发明了一个自适应的叫醒算法,能够尽量减少唤醒次数.

但是大爷会规定一个最长唤醒时间,就是必须在这样的时间(innodb_adaptive_max_sleep_delay)时唤醒我.


如此当有人从内部出来以后,等待的大爷(排在最前面的)就可以进入享受鱼水之欢了.


但是每位大爷能够支持的时间不一样,有的一分钟(quicker),有的大爷需要几个小时.这样外面等待的大爷就会有意见,哎呀,怎么还不出来.


老鸨又想了一个办法,规定每个人不能在姑娘房里呆10分钟以上(innodb_concurrency_tickets), 有特别持久的人就需要在10分钟时出来,在继续排队(排在队尾).

等到下一次轮到他再进行鱼水之欢.


人物对应:老鸨(MySQL), 大爷(threads), 姑娘(innodb)


如何优化innodb_concurrency_tickets,那就得看哪位大爷重要,比如宰相的儿子在这里等,那宰相的儿子又十分持久,最好就用多点时间(增大innodb_concurrency_tickets)

如果宰相的儿子不持久,那就用小时间快点排到他.

0 0
原创粉丝点击