mysql案例系列之~max_connections

时间:2022-10-02 21:26:38

一 场景:too-many-connections
二 分析: 出现此问题的原因是连接mysql的线程数超过max_connections的规定数量。
三 有两种情况
   1 非sleep活动连接,是由于程序业务开始大量并发造成的,都是活动连接.此现象发生会伴随着IO CPU和负载的持续升高
    mysql -e 'show full processlist'|grep -v 'Sleep'|awk '{print $4}|sort -r|uniq -c|sort -nr
    统计出大量session的来源IP,联系开发进行处理
   2 sleep活动连接,此现象发生是由于1 程序连接session没有释放或者并发建立,但是并没有活动,不会引起IO CPU和负载的变化
   mysql -e 'show full processlist'|awk '{print $4}|sort -r|uniq -c|sort -nr
   统计出大量session的来源IP,联系开发进行处理
  3 如果非常重要 可以立即先调节max_connections,set global max_connections=+1000 这样先保证业务能正常运行
  4 我遇到的在测试环境中的主要问题就是一些程序进行压力测试导致的
 四 总结:排查出相关程序,定位问题 就能解决