您的位置:首页 > 数据库 > MySQL

mysql的limit max user processes

2014-05-08 16:29 399 查看
现象描述:

今天有人反应点击网站相关链接无反应,在连接数据库时出现提示如下:

mysql error: 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

通过google了解到是由于用户线程达到 max user processes导致,但是通过ulimit -a



发现max user processes 127372 和其他正常的服务器都一样,是什么原因导致的呢?

1.pidof mysqld 查询mysql实例都有哪些进程



2.cat /proc/28571/limits



红框出:原来为1024 ,出错的实例都是由于Soft Limit 达到1024,若关闭一些连接,数据库仍会继续运行,但问题并没有解决。

解决方案:

1.vi /etc/security/limits.d/90-nproc.conf

#修改为:

* nproc 127372

更改后需要重启数据库实例

2.动态修改进程的系统资源limits

echo -n "Max processes=204800:204800" > /proc/`pidof mysqld`/limits

如:echo -n "Max processes=127372:127372" > /proc/28571/limits

此方法不用重启数据库实例

普及:

1.自内核2.6.32之后,引入/etc/security/limits.d/90-nproc.conf,这就意味/etc/security/limits.d/里面的文件的配置会覆盖/etc/security/limits.conf的配置

2.快速修改:

文件句柄

echo "* soft nofile 65536" >> /etc/security/limits.conf

echo "* hard nofile 65536" >> /etc/security/limits.conf

最大线程数

sed -i '/nproc/s/soft/-/' /etc/security/limits.d/90-nproc.conf

sed -i '/nproc/s/1024/65535/' /etc/security/limits.d/90-nproc.conf

至于为何会出现这种问题,请看下此链接:/article/5935692.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: