作家
登录

程序连接数据库响应慢!是Thread pool参数捣的鬼吗?

作者: 来源: 2017-12-21 15:06:15 阅读 我要评论

【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?

 法度榜样连接数据库响应慢!是Thread pool参数捣的鬼吗?

数据库版本:percona-mysql 5.6.16

在很长一段时光,都邑出现法度榜样连接数据库,出现响应慢的情况,正常在几到几十毫秒之间,然则有时会出现上百毫秒的情况;

开端因为开辟从新设置并调剂过法度榜样连接池,一向困惑是连接池的问题,然则问题依旧;

因为应用的版本是 percona-mysql 5.6.16 并且应用了数据库连接池。

Thread Pool 根据参数 thread_pool_size 被分为若干个 group, 每个 group 保护 client 提议的 connections, 当 MySQL 建立 connection 时,

数量为 thread_pool_oversubscribe+1。若 worker 达到最大年夜数量后照样不足以处理回话请求, 则连接在本 group 上等待, 导致 sql 语句的 rt 增大年夜;

是以将 thread_pool_oversubscribe 参数调大年夜,然则问题依旧;

MySQL 根据 connection 的 thread id 对 thread_pool_size 取模, 将 connection 提议的 sql 语句分派到对应的 group。每个 group 的最大年夜 worker

检查 thread_cache_size,办事器内存大年夜小为 64G,thread_cache_size=128;

每建立一个连接,都须要一个线程来竽暌闺之匹配,此参数用来缓存余暇的线程,以至不被烧毁,如不雅线程缓存中有余暇线程,这时刻如不雅建立新连接,MYSQL 就会很快的响应连接请求;

  1. show status like '%thread%'
  2.  
  3. Variable_name Value 
  4.  
  5. Threads_cached     0 
  6.  
  7. Threads_connected   219 
  8.  
  9. Threads_created     655068 
  10.  
  11. Threads_running     48 

应用 show status 查看当前 mysql 连接情况:

  1. SHOW STATUS WHERE Variable_name LIKE '%Thread%'

Threads_cached : 代表当前此时此刻线程缓存中有若干余暇线程。

Threads_connected : 代表当前已建立连接的数量,因为一个连接就须要一个线程,所以也可以算作当前被应用的线程数。

Threads_created : 代表大年夜比来一次办事启动,已创建线程的数量。

Threads_running : 代表当前激活的(非睡眠状况)线程数。并不是代表正在应用的线程数,有时刻连接已建立,然则连接处于 sleep 状况,这里相对应的线程也是 sleep 状况。


最好将 thread_cache_size 设置成与 threads_connected 一样。

  1. show variables like '%thread%'
  2.  
  3. +-----------------------------------------+-----------------+ 
  4.  
  5. | Variable_name                           | Value           | 
  6.  
  7. +-----------------------------------------+-----------------+ 
  8.  
  9. | innodb_purge_threads                    | 1               | 
  10.  
  11. | innodb_read_io_threads                  | 4               | 
  12.  
  13. | innodb_thread_concurrency               | 0               | 

      推荐阅读

      Linux之HA高可用集群的基础概念总结

    【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? HA(High Availability)高可用集群,其特点为根据实际需求为前端Diretor,后端RS-server,数据库办事器,共>>>详细阅读


    本文标题:程序连接数据库响应慢!是Thread pool参数捣的鬼吗?

    地址:http://www.17bianji.com/lsqh/40049.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)