MySQL数据库负载很高连接数很多怎么处理
在MySQL数据库连接数很多,而且大多属于活跃的状态时MySQL机器基本上负载很高,属于基本上快要死去的状态了.
这时怎么办呢?
有可能两个办法.
第一先限制Innodb的并发处理.如果innodb_thread_conncurrency = 0 可以先改成 16或是64 看机器压力,如果
非常大,先改成16让机器的压力下来,然后慢慢增达,适应自已的业务.
处理方法: set global innodb_thread_conncurrency=16;
第二: 对于连接数已经超过600或是更多的情况,可以考虑适当的限制一下连接数,让前端报一下错,也别让DB挂了.
DB在了,总是可以用来加载一下数据,当数据加载到了nosql里了,慢慢的DB压力也会降下来的.
限制单用户连接数在500以下. 如:
set global max_user_connections=500;
(MySQL随着连接数的增加性能会是下降的,这也是thread_pool出现的原因)
另外对于有的监控程序会读取information_schema下面的表的程序可以考虑关闭下面的参数
innodb_stats_on_metadata=0
set global innodb_stats_on_metadata=0;
这个参数主要防止对读取information_schema时造成大量读取磁盘进行信息统计(如果慢查询中出现关于information_schema中表时,也可以考虑禁用该参数)
处理依据:
当学校的一个食堂一分钟只能为两个打饭, 忽然来了100个时人来打饭,又没排队, 不出会现了打饭的师傅要用点时间
去选择为那个用户服务了, 人越多,场面就越乱, 难免出现用户大吼该他的场面, 最后有可能就出现不是打饭了,而时之间相互
打架了,打饭的师傅也将收到同时有90个以上的Server too busy. 如果能排一下队.最多也就50分钟能处理完了.
以前办法,应该可以让MySQLD不会挂掉.如果业务支撑受到限制,还是想办法处理一下.
问题:
高峰期的业务业务支撑数就是服务器的最终需求数吗?
建议继续学习:
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:wubx 来源: MySQL支持
- 标签: 连接数
- 发布时间:2012-08-09 23:59:09
-
[61] memory prefetch浅析
-
[57] find命令的一点注意事项
-
[32] Oracle bbed工具的编译
-
[31] 基本排序算法的PHP实现
-
[31] 读书笔记-壹百度:百度十年千倍的29条法则
-
[30] 卡诺模型―设计品质与设计价值的思考
-
[25] 程序员技术练级攻略
-
[24] 8大实用又重要Mac使用技巧
-
[23] 小屏幕移动设备网页设计注意事项
-
[19] dump oracle events中间篇“