首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多并发连接的MySQL问题

多并发连接的MySQL问题
EN

Server Fault用户
提问于 2010-07-12 05:04:29
回答 4查看 6.4K关注 0票数 2

这是一个有32 GB内存的六核。我已经安装了MySQL 5.1.47 (后端)。配置几乎是标准的,但max_connections除外,后者设置为2000。另一方面,nginx上存在PHP5.3/FastCGI。应该提供一个非常简单的php应用程序。NGINX可以在这台机器上并行处理数千个请求。此应用程序通过mysqli访问MySQL。在mysqli中使用非持久连接时,当达到100个并发连接时会出现问题。

错误 14074#0:*296 FastCGI在stderr中发送:"PHP警告: mysqli::mysqli():2002年年资源暂时不可用(试图通过unix://tmp/mysqld.sock连接)在/var/www/libs/db.php第7行中

我不知道要解决这个问题。通过tcp连接到mysql是非常缓慢的。有趣的是,当使用持久连接(在mysqli中添加'p:‘到主机名)时,前5000到10000个请求会失败,并出现与上面相同的错误,直到到达最大连接(从webserver,设置为1500)为止。在第一个请求之后,MySQL保持1500个打开的连接,一切正常,这样我就可以发出1500个并发请求。哈?这有可能是PHP的FastCGI问题吗?

EN

回答 4

Server Fault用户

发布于 2010-07-14 05:09:25

这听起来好像没有及时清理连接。“显示处理列表”应该显示连接,如果是这样的话。查看MySQL文档,除非对某些PHP参数进行了调整,否则这在PHP中可能很常见。您可能想看看这篇文章和http://dev.mysql.com/doc/refman/5.0/en/too-many-connections.html上的评论

非常慢的TCP连接带来的另一种可能性可能是MySQL (或tcpwrappers)试图为访问执行主机名查找,而查找速度很慢。在使用unix套接字时,这似乎不太可能,但如果它试图匹配本地主机或系统主机名,则可能值得研究是否可以将任何访问规则移到IP或删除。

票数 1
EN

Server Fault用户

发布于 2010-07-12 06:05:05

如果您一次连接10,000次,则可能会接受这10,000次中的1,500次,而其余的8,500次将被拒绝(就像在,不会延迟到持久连接可用为止)。然后,随后的请求将使用1500大型持久池。

在启动服务器时打开持久连接一次是否有问题?

票数 0
EN

Server Fault用户

发布于 2010-07-14 06:02:37

这个操作系统在上面运行的是什么?Windows在TCP连接上的时间太长了。大约90秒的时间。你必须做一些注册表编辑,以使回到更短的东西。同时也有助于将10k的端口限制提高到更高的水平。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/160119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档