最近,网站经常出现 数据库连接失败的提示,每次都是一会就又恢复了,但服务器的负载不高,CPU和MEM的利用均有空闲,访问并发也不高。查看服务器的系统日志和数据库日志都没有发现报错,很郁闷。
网上找了很多资料,有说是页面循环数据库请求过多,还有就是数据库连接是常连接,但我的网站都没有,还有就是mysql返回要跳过主机名解析,也在host里面指定了。
后来在出现问题的时候,到数据库服务器上连接数据库,发现如下报错:
ERROR 1135 (HY000): Can’t create a new thread (errno 11); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug
首先使用perror工具看一下 错误代码11代表的意思 perror 11 OS error code 11: Resource temporarily unavailable (资源暂时不可用);google搜索了一下,很多文章说和当前用户的文件描述符ulimit -n有关系;
ulimit -n
1024
然后修改了cat /etc/security/limits.conf文件,添加如下三行:
mysql soft nproc 65536
mysql hard nproc 65536
mysql soft nofile 65535
或者为了保险起见,可以添加如下两行:
* soft nproc 65536
* hard nproc 65536
退出当前会话,重新登陆,用ulimit -a 查看配置是否生效。
以上还无法解决问题,可以再参考:
阅读(2460) | 评论(0) | 转发(0) |