mysql中一个普通ERROR 1135 (HY000)错误引发的血案 |
本文标签:ERROR,1135 今天接到测试人员反应,测试环境前端应用程序无连接mysql数据库,登录mysql服务器,查看错误日志,发现有如下报错: ERROR 1135 (HY000): Cant 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 第一反应感觉可能是跟ulimit限制连接数有关,文件描述符不够用 。接下来检查配置件 /etc/security/limits.conf 相关结果如下: 复制代码 代码如下: #for root root soft nofile 65535 root hard nofile 65535 # End of file mysql soft nproc 65536 mysql hard nproc 65536 mysql soft nofile 65535 mysql hard nofile 65535 配置没有问题,mysql的ulimit限制已经打开 。 但是,执行如下命令: 复制代码 代码如下: # sudo -u root bash -c " ulimit -a " core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 62591 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 1024 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited 发现max user processes值仍为1024. 而在Centos5里面,只须在/etc/security/limits.conf添加如下两行: 复制代码 代码如下: # Default limit for number of users processes to prevent # accidental fork bombs. # See rhbz #432903 for reasoning. * soft nproc 1024 而在配置文件/etc/security/limits.d/90-nproc.conf中的 “* soft nproc 1024”的意思是任何用户的最大max user processes为1024个,也就是说,系统的任何用户均不可以通过ulimit -u来修改 。真的是这样吗?我们来进行如下验证操作:
复制代码 代码如下: [oracle@fztest ']$ ulimit -u 65535 -bash: ulimit: max user processes: cannot modify limit: Operation not permitted [root@fztest ']# ulimit -u 65535 [root@fztest ']# ulimit -u 65535 由以上操作,可知事实上这个限制是对除root以外的普通用户进行的限制,root可以通过ulimit -u 65535来进行即时修改,只对当前会话生效 。一旦重启服务器,便会失效(重新恢复max user processes -u 1024) 。 接下来,尝试通过修改这个配置文件,来验证max user processes的值是否会改变 。
复制代码 代码如下: [root@fztest ']# sudo -u root bash -c " ulimit -a" core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 95191 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65535 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 65535 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited 由此可见,修改生效 。如果不想修改/etc/security/limits.d/90-nproc.conf这个文件,也可以将此限制添加到/etc/rc.local文件中,让其开机应用生效即可 。 |