PHP 达到最大数据库连接数 - 使用 Kohana/ORM 发起连接

标签 php mysql database orm kohana

在基于 PHP 的 Web 应用程序的负载测试中,我们可以轻松达到数据库最大连接数 150 个的硬限制。我们使用 ORM 运行 Kohana 来管理数据库连接。

这会导致连接异常(从而导致事务失败),mysql_pconnect 的性能似乎更差。

我们正在寻找一种在负载下实现优雅降级的解决方案。考虑的选项:

  1. 数据库连接池(呃,这对于 PHP 来说是不可能的,对吧?)
  2. 当失败原因是最大连接数时,重试失败的连接 已达到连接

2 看起来合乎逻辑,但 Kohana/ORM 管理数据库连接过程。我们可以以某种方式配置它吗?

有什么是我没有想到的吗?


编辑

这是一个 Amazon AWS RDS 数据库实例,Amazon 为我设置了 150 个限制,并且服务器肯定配置正确。我只是想确保无论我使用哪个数据库,在负载下都能正常降级。显然,我始终可以升级数据库并拥有更高的连接限制,但我想防止出现故障情况,以防我们意外达到限制。负载下的优雅降级。

最佳答案

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

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

This回答您有关 PHP 数据库连接池的问题。

关于PHP 达到最大数据库连接数 - 使用 Kohana/ORM 发起连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10038955/

相关文章:

database - 组件 OLE DB 源没有输入

python - django.db.utils.OperationalError : (1044, "Access denied for user ' someuser'@'localhost' 到数据库 '/path/to/Database"')

php - 如何更新 CakePHP?

php - .htaccess 简洁的 url,如果 $_GET 数据有空格,它会重定向到 404 页面

php - 如何使用 PHP 问题从另一个数组中删除一个数组值

php - 筛选产品 价格并排序 升序 描述 PHP MYSQLI

mysql - 从 Azure 中国的虚拟机连接到 MySql 服务时出现问题

Mysql LIMIT 在 GROUP BY 中的 ORDER

php - 如何使用 SUM(CASE) 和日期间隔来选择用户及其金额列表和总金额

mysql - mysql新手,使用内连接得到错误的结果