Jquery中文网 www.jquerycn.cn
Jquery中文网 >  数据库  >  mysql  >  正文 MySQL sleep进程连接过多卡住了问题解决办法

MySQL sleep进程连接过多卡住了问题解决办法

发布时间:2017-03-07   编辑:www.jquerycn.cn
jquery中文网为您提供MySQL sleep进程连接过多卡住了问题解决办法等资源,欢迎您收藏本站,我们将为您提供最新的MySQL sleep进程连接过多卡住了问题解决办法资源
MySQL sleep进程连接过多是因为没有处理完都在队列中了,如果我们要处理可以设置等待时间来解决这个问题,下面来看关于MySQL sleep进程连接过多卡住了原因分析及处理办法。

MySQL sleep进程连接过多原因分析

当php的页面执行结束时,会自动释放掉一切。相信很多人都跟我想的一样。但事实证明并不是这样。比如session就不会随着页面执行完毕而释放。

php的垃圾回收机制,其实只针对于php本身。对于mysql,php没权利去自动去释放它的东西。如果你在页面执行完毕前不调用mysql_close(),那么mysql那边是不会关闭这个连接的。如果你是用的是pconnect方式,即使你在页面执行完毕前调用mysql_close(),也无法另mysql关闭这个连接

mysql中睡眠连接会对mysql服务器造成影响

严重消耗mysql服务器资源(主要是cpu, 内存),并可能导致mysql崩溃。

造成睡眠连接过多的原因?

1. 使用了太多持久连接(个人觉得,在高并发系统中,不适合使用持久连接)

2. 程序中,没有及时关闭mysql连接

3. 数据库查询不够优化,过度耗时。

那么,如果要从根本上解决sleep连接过多,就得从以上三点反复检查,但是见效并不快。

在mysql的配置文件中设置自动关闭链接时间过长的进程:

修改mysql的配置文件my.cnf , window系统中是my.ini

[mysqld]
......
wait_timeout=100
interactive_timeout=100

wait_timeout=100 #即设置mysql连接睡眠时间为100秒,任何sleep连接睡眠时间若超过100秒,将会被mysql服务自然终止。

设置好后重启mysql

service mysqldrestart

修改mysql占用内存的参数如下:

table_open_cache=2000 改为

table_open_cache=256
table_definition_cache=1400 改为

table_definition_cache=400

您可能感兴趣的文章:
MySQL sleep进程连接过多卡住了问题解决办法
魔兽世界6.0更新一半卡住了怎么办?魔兽世界6更新卡住解决方法
mysql sleep连接过多的解决方法
LOL游戏卡住并无法进入游戏问题解决办法
mysql报错too many connections的解决方法
电脑玩网游很卡怎么办?网游很卡解决办法
电脑卡机怎么办?电脑卡机如何处理
电脑总是弹出拨号连接窗口怎么办
Win8搜索到无线信号但无法连接上网问题解决办法
电脑开机显示器黑屏问题解决办法

[关闭]