我目前正在使用 Amazon Linux 对托管在 AWS EC2 上的 PHP、MySQL 应用程序进行压力测试。达到一定数量的用户后,数据库开始出现错误: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
。我的系统上仍有很多可用内存,我可以在出现此错误时看到free -m
。
我尝试过更改mysql
in的限制/etc/security/limits.conf
,但没有成功。我还能尝试什么?我如何才能找到问题的根源?是的,我是 MySQL 和 Linux 的新手。
更新:
回答后,jeffatrackaid
我尝试在/etc/security/limits.d
名为的目录中添加一个配置文件99-mysql.conf
,但错误仍然存在。以下是该文件的内容:
mysql soft nproc 20960
mysql hard nproc 45960
mysql soft nofile 20960
mysql hard nofile 45960
root soft nproc 20960
root hard nproc 45960
root soft nofile 20960
root hard nofile 45960
更新:系统重启后即可工作。
答案1
你走在正确的轨道上,但在一些较新的操作系统(例如 CentOS 6)中,存在:
/etc/security/limits.d/
这将覆盖 limits.conf 中的项目。
我建议在这里放置一个更高数字的文件(例如 99-mysql.conf)以满足您的限制。
更多内容请参见: http://www.mysqlperformanceblog.com/2013/02/04/cant_create_thread_errno_11/