一 场景: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 我遇到的在测试环境中的主要问题就是一些程序进行压力测试导致的
四 总结:排查出相关程序,定位问题 就能解决
相关文章
- Spark RDD/Core 编程 API入门系列 之rdd案例(map、filter、flatMap、groupByKey、reduceByKey、join、cogroupy等)(四)
- Spark RDD/Core 编程 API入门系列 之rdd案例(map、filter、flatMap、groupByKey、reduceByKey、join、cogroupy等)(四)
- vue系列之flex经典案例
- 三:MySQL系列之SQL查询
- mysql 开发进阶篇系列 40 mysql日志之二进制日志下以及查询日志
- mysql 开发进阶篇系列 38 mysql日志之错误日志log-error
- mysql 开发进阶篇系列 39 mysql日志之二进制日志(binlog)
- mysql 开发进阶篇系列 41 mysql日志之慢查询日志
- 深入理解mysql之BDB系列(1)---BDB相关基础知识
- MySQL系列之执行SQL 语句时发生了什么?