我有一个运行 MySQL Server 的数据库服务器和 5 个从属服务器。我总是收到以下错误:
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
虽然我设置了 ulimited
root@master:~# 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) 2062915
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1000000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 1000000
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
root@master:~# cat /proc/`pidof mysqld`/limits | egrep "(processes|files)"
Max processes 1000000 1000000 processes
Max open files 1000000 1000000 files
对数据库服务器的每个请求大约为30k。
答案1
你能从 my.cnf 中发布 [mysqld] 部分吗?如果你从 ubuntu 软件包安装,它位于 /etc/mysql 中;如果你从 mysql.com 的社区安装,它位于 /etc 中。如果你没有这样的文件,那么这可能已经是问题所在,因为你正在运行一个 comile time defaults。
另请发布
显示全局变量如'%thread%';
显示全局状态如'%Thread%';
并发布输出。