加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

记一次出产数据库不测重启的经验

发布时间:2018-12-07 13:18:51 所属栏目:编程 来源:小柒2012
导读:媒介 在一个阳光亮媚的下战书,电脑右下角传来一片片邮件提示,同时陪伴着微信钉钉的震动,打开一看,应用各类堕落,天兔告警,数据库处事器内存爆红,MySql 数据库实例挂掉了。 排查 先交接一下数据库版本: mysqlstatus -------------- mysqlVer14.14Distr

最终功效为: 

  1. +-----------+  
  2.     | MEMORY_MB |  
  3.     +-----------+  
  4.     | 87.5156*37|  
  5.     +-----------+ 

4)查察 memory 存储引擎占用几多内存 

  1. SELECT SUM(max_data_length)/1024/1024 AS MEMORY_MB FROM information_schema.tables WHERE ENGINE='memory'; 

查询功效为:

  1. +---------------+  
  2. | MEMORY_MB     |  
  3. +---------------+  
  4. | 3857.37713909 |  
  5. +---------------+ 

以上四项加起来差不多也就27975MB,差不错28G的样子,可是 MySql 历程表现占用了52.4G,那么剩下24.4G去哪了?

线程池

此线程池非彼毗连池,着实两者是有很大区此外,毗连池一样平常在客户端配置,而线程池是在DB处事器上设置;其它毗连池可以取到停止了毗连频仍建设和烧毁,可是无法取到节制MySQL勾当线程数的方针,在高并发场景下,无法取到掩护DB的浸染。较量好的方法是将毗连池和线程池团结起来行使。

关于线程池的一些参数: 

  1. mysql> show variables like 'thread%';  
  2.    +-------------------------------+---------------------------+  
  3.    | Variable_name                 | Value                     |  
  4.    +-------------------------------+---------------------------+  
  5.    | thread_handling               | one-thread-per-connection |  
  6.    | thread_pool_high_prio_mode    | transactions              |  
  7.    | thread_pool_high_prio_tickets | 4294967295                |  
  8.    | thread_pool_idle_timeout      | 60                        |  
  9.    | thread_pool_max_threads       | 100000                    |  
  10.    | thread_pool_oversubscribe     | 3                         |  
  11.    | thread_pool_size              | 12                        |  
  12.    | thread_pool_stall_limit       | 500                       |  
  13.    +-------------------------------+---------------------------+ 

thread_handling:

该参数是设置线程模子,默认环境是one-thread-per-connection,也就是不启用线程池。将该参数配置为pool-of-threads即启用了线程池。

threadpoolsize:

该参数是配置线程池的Group的数目,默以为体系CPU的个数,充实操作CPU资源。

threadpooloversubscribe:

该参数配置group中的最大线程数,每个group的最大线程数为threadpooloversubscribe+1,留意listener线程不包括在内。

threadpoolhighpriomode:

高优先级行列的节制参数,有三个值(transactions/statements/none),默认是transactions,三个值的寄义如下:

  •  transactions:对付已经启动事宜的语句放到高优先级行列中,不外还取决于后头的threadpoolhighpriotickets参数
  •  statements:这个模式全部的语句城市放到高优先级行列中,不会行使到低优先级行列
  •  none:这个模式不行使高优先级行列

threadpoolhighpriotickets:

该参数节制每个毗连最多语序几多次被放入高优先级行列中,默以为4294967295,留意这个参数只有在threadpoolhighpriomode为transactions的时辰才有结果。

threadpoolidle_timeout:

worker线程最大空闲时刻,默以为60秒,高出限定后会退出。

threadpoolmax_threads:

该参数用来限定线程池最大的线程数,高出该限定后将无法再建设更多的线程,默以为100000。

threadpoolstall_limit:

该参数配置timer线程的检测group是否非常的时距离断,默以为500ms。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读