首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >达到PHP连接-使用Kohana/ORM启动连接

问达到PHP连接-使用Kohana/ORM启动连接
EN

Stack Overflow用户
提问于 2012-04-06 03:56:29
回答 2查看 1.4K关注 0票数 2

在基于PHP的web应用程序的负载测试中,我们可以很容易地达到DBs的最大连接的硬限制。我们使用ORM运行Kohana来管理DB连接。

这会导致连接异常(从而导致事务失败),mysql_pconnect的执行情况似乎更糟。

我们正在寻找一个在负载下有优雅退化的解决方案。考虑的备选方案:

  1. DB连接池(呃,这在PHP中是不可能的,对吧?)
  2. 当故障是由于达到最大连接时,重新尝试失败的连接。

2似乎合乎逻辑,但是Kohana/ORM管理DB连接过程。我们能以某种方式配置它吗?

有什么我没想过的吗?

编辑

这是一个Amazon数据库实例,Amazon为我设置了150个限制,而且服务器无疑是正确配置的。我只想确保在负载下,无论使用哪种数据库,都会出现优雅的退化。显然,我可以随时升级DB并有更高的连接限制,但我希望防止出现故障情况,以防意外地达到极限。在荷载作用下优雅的退化。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-06 04:42:11

当您说负载测试时,我假设您正在推动大约150个并发请求,而不是因为您在同一个请求中建立了多个连接而达到了连接限制。如果是这样的话,请查看pconnect。要在Kohana中启用它,只需在连接的config/数据库文件中启用persistent = true。

如果这样做不起作用,那么您必须找到一个允许更多连接的Amazon产品,因为PHP不会在线程之间共享资源。

这回答了有关PHP数据库连接池的问题。

票数 2
EN

Stack Overflow用户

发布于 2012-04-06 04:31:48

如果连接的限制为150个( 最大值的默认值为151个),则很可能运行mysql时没有配置文件。

您需要创建一个配置文件来提高这个数字。

创建/etc/my.cnf并放入这两行

代码语言:javascript
复制
[mysqld]
max_connections=300

您不必重新启动mysql (如果您愿意,可以重新启动mysql)

您可以只运行这个MySQL命令来动态地引发它。

代码语言:javascript
复制
SET GLOBAL max_connections = 300;

更新2012-04-06 12:39美国东部时间

尝试使用pconnect而不是mysql_connect。如果可以将Kohana配置为使用mysql_pconnect,则可以使用。

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

https://stackoverflow.com/questions/10038955

复制
相关文章

相似问题

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